Tree @df82aa04-1f7a-4da3-b82d-a9637c253908/main (Download .tar.gz)
- ..
- .vscode
- api
- Animation.cpp
- Animation.h
- AnimationManager.cpp
- AnimationManager.h
- AnimationMedia.cpp
- AnimationMedia.h
- AnimationSet.cpp
- AnimationSet.h
- AStarContainer.cpp
- AStarContainer.h
- AStarNode.cpp
- AStarNode.h
- Avatar.cpp
- Avatar.h
- Camera.cpp
- Camera.h
- CampaignManager.cpp
- CampaignManager.h
- CombatText.cpp
- CombatText.h
- CommonIncludes.h
- CursorManager.cpp
- CursorManager.h
- DeviceList.cpp
- DeviceList.h
- EffectManager.cpp
- EffectManager.h
- EnemyGroupManager.cpp
- EnemyGroupManager.h
- EngineSettings.cpp
- EngineSettings.h
- Entity.cpp
- Entity.h
- EntityBehavior.cpp
- EntityBehavior.h
- EntityManager.cpp
- EntityManager.h
- EventManager.cpp
- EventManager.h
- FileParser.cpp
- FileParser.h
- Flare.rc
- FontEngine.cpp
- FontEngine.h
- GameSlotPreview.cpp
- GameSlotPreview.h
- GameState.cpp
- GameState.h
- GameStateConfig.cpp
- GameStateConfig.h
- GameStateCutscene.cpp
- GameStateCutscene.h
- GameStateLoad.cpp
- GameStateLoad.h
- GameStateNew.cpp
- GameStateNew.h
- GameStatePlay.cpp
- GameStatePlay.h
- GameStateTitle.cpp
- GameStateTitle.h
- GameSwitcher.cpp
- GameSwitcher.h
- GetText.cpp
- GetText.h
- Hazard.cpp
- Hazard.h
- HazardManager.cpp
- HazardManager.h
- IconManager.cpp
- IconManager.h
- InputState.cpp
- InputState.h
- ItemManager.cpp
- ItemManager.h
- ItemStorage.cpp
- ItemStorage.h
- Loot.cpp
- Loot.h
- LootManager.cpp
- LootManager.h
- main.cpp
- Map.cpp
- Map.h
- MapCollision.cpp
- MapCollision.h
- MapParallax.cpp
- MapParallax.h
- MapRenderer.cpp
- MapRenderer.h
- Menu.cpp
- Menu.h
- MenuActionBar.cpp
- MenuActionBar.h
- MenuActiveEffects.cpp
- MenuActiveEffects.h
- MenuBook.cpp
- MenuBook.h
- MenuCharacter.cpp
- MenuCharacter.h
- MenuConfig.cpp
- MenuConfig.h
- MenuConfirm.cpp
- MenuConfirm.h
- MenuDevConsole.cpp
- MenuDevConsole.h
- MenuEnemy.cpp
- MenuEnemy.h
- MenuExit.cpp
- MenuExit.h
- MenuGameOver.cpp
- MenuGameOver.h
- MenuHUDLog.cpp
- MenuHUDLog.h
- MenuInventory.cpp
- MenuInventory.h
- MenuItemStorage.cpp
- MenuItemStorage.h
- MenuLog.cpp
- MenuLog.h
- MenuManager.cpp
- MenuManager.h
- MenuMiniMap.cpp
- MenuMiniMap.h
- MenuMovementType.cpp
- MenuMovementType.h
- MenuNumPicker.cpp
- MenuNumPicker.h
- MenuPowers.cpp
- MenuPowers.h
- MenuStash.cpp
- MenuStash.h
- MenuStatBar.cpp
- MenuStatBar.h
- MenuTalker.cpp
- MenuTalker.h
- MenuTouchControls.cpp
- MenuTouchControls.h
- MenuVendor.cpp
- MenuVendor.h
- MessageEngine.cpp
- MessageEngine.h
- ModManager.cpp
- ModManager.h
- NPC.cpp
- NPC.h
- NPCManager.cpp
- NPCManager.h
- Platform.h
- PlatformAndroid.cpp
- PlatformEmscripten.cpp
- PlatformGCW0.cpp
- PlatformIPhoneOS.cpp
- PlatformLinux.cpp
- PlatformWin32.cpp
- PowerManager.cpp
- PowerManager.h
- QuestLog.cpp
- QuestLog.h
- RenderDevice.cpp
- RenderDevice.h
- resource.h
- SaveLoad.cpp
- SaveLoad.h
- SDLFontEngine.cpp
- SDLFontEngine.h
- SDLHardwareRenderDevice.cpp
- SDLHardwareRenderDevice.h
- SDLInputState.cpp
- SDLInputState.h
- SDLSoftwareRenderDevice.cpp
- SDLSoftwareRenderDevice.h
- SDLSoundManager.cpp
- SDLSoundManager.h
- Settings.cpp
- Settings.h
- SharedGameResources.cpp
- SharedGameResources.h
- SharedResources.cpp
- SharedResources.h
- SoundManager.cpp
- SoundManager.h
- StatBlock.cpp
- StatBlock.h
- Stats.cpp
- Stats.h
- Subtitles.cpp
- Subtitles.h
- TileSet.cpp
- TileSet.h
- TooltipData.cpp
- TooltipData.h
- TooltipManager.cpp
- TooltipManager.h
- Utils.cpp
- Utils.h
- UtilsDebug.cpp
- UtilsDebug.h
- UtilsFileSystem.cpp
- UtilsFileSystem.h
- UtilsMath.h
- UtilsParsing.cpp
- UtilsParsing.h
- Version.cpp
- Version.h
- Widget.cpp
- Widget.h
- WidgetButton.cpp
- WidgetButton.h
- WidgetCheckBox.cpp
- WidgetCheckBox.h
- WidgetHorizontalList.cpp
- WidgetHorizontalList.h
- WidgetInput.cpp
- WidgetInput.h
- WidgetLabel.cpp
- WidgetLabel.h
- WidgetListBox.cpp
- WidgetListBox.h
- WidgetLog.cpp
- WidgetLog.h
- WidgetScrollBar.cpp
- WidgetScrollBar.h
- WidgetScrollBox.cpp
- WidgetScrollBox.h
- WidgetSlider.cpp
- WidgetSlider.h
- WidgetSlot.cpp
- WidgetSlot.h
- WidgetTabControl.cpp
- WidgetTabControl.h
- WidgetTooltip.cpp
- WidgetTooltip.h
Widget.h @df82aa04-1f7a-4da3-b82d-a9637c253908/main — raw · history · blame
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | /* Copyright © 2011-2012 Clint Bellanger Copyright © 2013 Joseph Bleau Copyright © 2013 Kurt Rinnert Copyright © 2012-2016 Justin Jacobs This file is part of FLARE. FLARE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. FLARE is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with FLARE. If not, see http://www.gnu.org/licenses/ */ #ifndef WIDGET_H #define WIDGET_H /** * Base interface all widget needs to implement */ #include "CommonIncludes.h" #include "Utils.h" class Widget { public: enum { SCROLL_VERTICAL = 0, SCROLL_HORIZONTAL = 1, SCROLL_TWO_DIRECTIONS = 2 }; Widget(); virtual ~Widget(); virtual void render() = 0; virtual void activate(); virtual void deactivate(); virtual void defocus(); virtual bool getNext(); // getNext and getPrev should be implemented virtual bool getPrev(); // if the widget has items internally that can be iterated virtual void setBasePos(int x, int y, int a); virtual void setPos(int offset_x, int offset_y); bool in_focus; bool focusable; bool enable_tablist_nav; // when disabled, this widget will be skipped during tablist navigation bool tablist_nav_right; // uses the center-right point for tablist nav instead of the center. Primarily for MenuConfig widgets uint8_t scroll_type; Rect pos; // This is the position of the button within the screen Rect local_frame; // Local reference frame is this is a daughter widget Point local_offset; // Offset in local frame is this is a daughter widget Point pos_base; // the initial x/y position of this widget, often from a config file int alignment; }; class TabList { private: std::vector<Widget*> widgets; int current; int previous; bool locked; bool current_is_valid(); bool previous_is_valid(); uint8_t scrolltype; int MV_LEFT; int MV_RIGHT; int ACTIVATE; TabList *prev_tablist; TabList *next_tablist; public: enum { WIDGET_SELECT_AUTO = 0, WIDGET_SELECT_LEFT = 1, WIDGET_SELECT_RIGHT = 2, WIDGET_SELECT_UP = 3, WIDGET_SELECT_DOWN = 4 }; static const bool GET_INNER = true; TabList(); ~TabList(); void lock(); void unlock(); void add(Widget* widget); // Add a widget void remove(Widget* widget); // Remove a widget void clear(); // Remove all widgets void setCurrent(Widget* widget); int getCurrent(); Widget* getWidgetByIndex(int index); unsigned size(); Widget* getNext(bool inner, uint8_t dir); // Increment current selected, return widget Widget* getPrev(bool inner, uint8_t dir); // Decrement current selected, return widget int getNextRelativeIndex(uint8_t dir); void deactivatePrevious(); void activate(); // Fire off what happens when the user presses 'accept' void defocus(); // Call when user clicks outside of a widget, resets current void setPrevTabList(TabList *tl); void setNextTabList(TabList *tl); void setScrollType(uint8_t _scrolltype); void setInputs(int _LEFT, int _RIGHT, int _ACTIVATE); void logic(); bool ignore_no_mouse; }; #endif |