guiConsole.h

Engine/source/gui/controls/guiConsole.h

More...

Classes:

Detailed Description

  1
  2//-----------------------------------------------------------------------------
  3// Copyright (c) 2012 GarageGames, LLC
  4//
  5// Permission is hereby granted, free of charge, to any person obtaining a copy
  6// of this software and associated documentation files (the "Software"), to
  7// deal in the Software without restriction, including without limitation the
  8// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  9// sell copies of the Software, and to permit persons to whom the Software is
 10// furnished to do so, subject to the following conditions:
 11//
 12// The above copyright notice and this permission notice shall be included in
 13// all copies or substantial portions of the Software.
 14//
 15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 21// IN THE SOFTWARE.
 22//-----------------------------------------------------------------------------
 23
 24#ifndef _GUICONSOLE_H_
 25#define _GUICONSOLE_H_
 26
 27#ifndef _GUIARRAYCTRL_H_
 28#include "gui/core/guiArrayCtrl.h"
 29#endif
 30
 31#ifndef _CONSOLE_LOGGER_H_
 32#include "console/consoleLogger.h"
 33#endif
 34
 35
 36class GuiConsole : public GuiArrayCtrl
 37{
 38   private:
 39      typedef GuiArrayCtrl Parent;
 40
 41      Resource<GFont> mFont;
 42
 43      bool mDisplayErrors;
 44      bool mDisplayWarnings;
 45      bool mDisplayNormalMessages;
 46      bool mFiltersDirty;
 47
 48      S32 getMaxWidth(S32 startIndex, S32 endIndex);
 49
 50      Vector<ConsoleLogEntry> mFilteredLog;
 51
 52   protected:
 53
 54      /// @name Callbacks
 55      /// @{
 56
 57      DECLARE_CALLBACK( void, onMessageSelected, ( ConsoleLogEntry::Level level, const char* message ) );
 58      DECLARE_CALLBACK(void, onNewMessage, (U32 errorCount, U32 warnCount, U32 normalCount));
 59
 60      /// @}
 61
 62      // GuiArrayCtrl.
 63      virtual void onCellSelected( Point2I cell );
 64
 65   public:
 66      GuiConsole();
 67      DECLARE_CONOBJECT(GuiConsole);
 68      DECLARE_CATEGORY( "Gui Editor" );
 69      DECLARE_DESCRIPTION( "Control that displays the console log text." );
 70
 71      // GuiArrayCtrl.
 72      virtual bool onWake();
 73      virtual void onPreRender();
 74      virtual void onRenderCell(Point2I offset, Point2I cell, bool selected, bool mouseOver);
 75
 76      void setDisplayFilters(bool errors, bool warns, bool normal);
 77      bool getErrorFilter() { return mDisplayErrors; }
 78      bool getWarnFilter() { return mDisplayWarnings; }
 79      bool getNormalFilter() { return mDisplayNormalMessages; }
 80
 81      void toggleErrorFilter()
 82      {
 83         setDisplayFilters(!mDisplayErrors, mDisplayWarnings, mDisplayNormalMessages);
 84      }
 85      void toggleWarnFilter()
 86      {
 87         setDisplayFilters(mDisplayErrors, !mDisplayWarnings, mDisplayNormalMessages);
 88      }
 89      void toggleNormalFilter()
 90      {
 91         setDisplayFilters(mDisplayErrors, mDisplayWarnings, !mDisplayNormalMessages);
 92      }
 93      void refresh()
 94      {
 95         setDisplayFilters(mDisplayErrors, mDisplayWarnings, mDisplayNormalMessages);
 96      }
 97
 98      void refreshLogText();
 99};
100
101#endif
102