GUIFramework 1.1.0
Framework for desktop GUI applications in C++.
Loading...
Searching...
No Matches
gui_framework::BaseComposite Class Referenceabstract

Base class for all windows that has children windows. More...

#include <BaseComposite.h>

Inheritance diagram for gui_framework::BaseComposite:
gui_framework::BaseComponent gui_framework::interfaces::IIterable< BaseComponent, iterators::composite_forward_iterator, iterators::composite_const_forward_iterator > gui_framework::interfaces::ISerializable gui_framework::BaseDialogBox gui_framework::BaseWindow gui_framework::GroupBox gui_framework::DialogBox gui_framework::BaseChildWindow gui_framework::BaseSeparateWindow gui_framework::ChildWindow gui_framework::BaseMainWindow gui_framework::SeparateWindow

Public Types

enum class  exitMode { destroyWindow , quit }
 

Public Member Functions

 BaseComposite (const std::wstring &className, const std::wstring &windowName, const utility::ComponentSettings &settings, const interfaces::IStyles &styles, BaseComposite *parent=nullptr, const std::string &windowFunctionName="", const std::string &moduleName="", uint16_t smallIconResource=NULL, uint16_t largeIconResource=NULL)
 
void removeChild (BaseComponent *child)
 
void removeComponents (const std::wstring &componentName)
 
BaseComponentfindChild (const std::wstring &windowName) const
 
BaseComponentfindChild (HWND handle) const
 
std::vector< BaseComponent * > findChildren (const std::wstring &windowName) const
 
virtual std::unique_ptr< Menu > & createMainMenu (const std::wstring &menuName)
 It needs to be called once.
 
virtual MenuaddPopupMenu (const std::wstring &menuName)
 Don't call move operator with return value.
 
virtual void removePopupMenus (const std::wstring &menuName)
 Remove all pop-up menus with menuName.
 
void setExitMode (exitMode mode)
 
void setOnDestroy (const std::function< void()> &onDestroy)
 
void setOnDestroy (const std::string &onDestroyFunctionName, const std::string &onDestroyFunctionModuleName)
 Load function from module. Can be seriazlied.
 
exitMode getExitMode () const
 
int getExitCode () const
 
const std::vector< std::unique_ptr< BaseComponent > > & getChildren () const
 
const std::unique_ptr< Menu > & getMainMenu () const
 
std::unique_ptr< Menu > & getMainMenu ()
 
std::vector< const Menu * > getPopupMenus () const
 
const std::function< void()> & getOnDestroy () const
 
virtual size_t getHash () const override=0
 Used as key in creators.
 
virtual iterators::composite_forward_iterator begin () noexcept override
 
virtual iterators::composite_const_forward_iterator cbegin () const noexcept override
 
virtual iterators::composite_forward_iterator end () noexcept override
 
virtual iterators::composite_const_forward_iterator cend () const noexcept override
 
virtual void setBackgroundColor (uint8_t red, uint8_t green, uint8_t blue) override
 
virtual json::JSONBuilder getStructure () const override
 
virtual ~BaseComposite ()
 
- Public Member Functions inherited from gui_framework::BaseComponent
 BaseComponent (std::wstring_view className, std::wstring_view windowName, const utility::ComponentSettings &settings, const interfaces::IStyles &styles, BaseComposite *parent=nullptr, std::string_view windowFunctionName="", std::string_view moduleName="", uint16_t smallIconResource=NULL, uint16_t largeIconResource=NULL)
 
LRESULT handleMessages (HWND handle, UINT message, WPARAM wparam, LPARAM lparam, bool &isUsed)
 
bool destroyComponent ()
 
bool asyncDestroyComponent ()
 
void enable ()
 
void disable ()
 
bool isEnabled () const
 
bool isDisabled () const
 
LRESULT sendRawMessage (UINT message, WPARAM wparam, LPARAM lparam)
 SendMessage WinAPI wrapper.
 
void setDesiredWidth (uint16_t desiredWidth)
 
void setDesiredHeight (uint16_t desiredHeight)
 
void setDesiredX (int desiredX)
 
void setDesiredY (int desiredY)
 
virtual void setTextColor (uint8_t red, uint8_t green, uint8_t blue)
 
BaseComponentgetParent () const
 
HWND getHandle () const
 
std::wstring_view getWindowName () const
 
std::wstring_view getClassName () const
 
uint16_t getDesiredWidth () const
 
uint16_t getDesiredHeight () const
 
uint16_t getActualWidth () const
 
uint16_t getActualHeight () const
 
RECT getActualCoordinates () const
 
int getDesiredX () const
 
int getDesiredY () const
 
uint32_t getId () const
 
COLORREF getBackgroundColor () const
 
COLORREF getTextColor () const
 
const smartPointerType< interfaces::IStyles > & getStyles () const
 
virtual ~BaseComponent ()
 
- Public Member Functions inherited from gui_framework::interfaces::ISerializable
 ISerializable ()=default
 
virtual ~ISerializable ()=default
 
- Public Member Functions inherited from gui_framework::interfaces::IIterable< BaseComponent, iterators::composite_forward_iterator, iterators::composite_const_forward_iterator >
 IIterable ()=default
 
virtual ~IIterable ()=default
 

Protected Member Functions

virtual LRESULT compositeWindowMessagesHandle (HWND handle, UINT message, WPARAM wparam, LPARAM lparam, bool &isUsed)
 
LRESULT windowMessagesHandle (HWND handle, UINT message, WPARAM wparam, LPARAM lparam, bool &isUsed) override
 
virtual LRESULT preWindowMessagesHandle (HWND handle, UINT message, WPARAM wparam, LPARAM lparam, bool &isUsed) override
 
- Protected Member Functions inherited from gui_framework::BaseComponent
virtual void setLocalizationKeys (interfaces::ITextLocalized *localized, const std::vector< std::string > &localizationKeys)
 Override for custom localization.
 

Protected Attributes

std::string windowFunctionName
 
exitMode mode
 
int exitCode
 
std::vector< std::unique_ptr< BaseComponent > > children
 
std::unordered_map< HMENU, MenupopupMenus
 
std::unique_ptr< MenumainMenu
 
std::function< void()> onDestroy
 
std::string onDestroyFunctionName
 
std::string onDestroyFunctionModuleName
 
- Protected Attributes inherited from gui_framework::BaseComponent
BaseCompositeparent
 
const std::wstring className
 
const std::wstring windowName
 
HWND handle
 
uint16_t desiredWidth
 
uint16_t desiredHeight
 
int desiredX
 
int desiredY
 
uint32_t id
 
COLORREF backgroundColor
 
COLORREF textColor
 
smartPointerType< interfaces::IStylesstyles
 

Friends

class BaseComponent
 
class interfaces::ICloseable
 

Additional Inherited Members

- Static Public Member Functions inherited from gui_framework::BaseComponent
static void runFunctionAsync (const std::function< void()> &callable, const std::function< void()> &callback=nullptr) noexcept
 Add task to thread pool.
 
static void runFunctionAsync (std::function< void()> &&callable, const std::function< void()> &callback=nullptr) noexcept
 Add task to thread pool.
 
- Static Public Member Functions inherited from gui_framework::interfaces::ISerializable
static uint32_t getCodepage ()
 

Detailed Description

Base class for all windows that has children windows.

Definition at line 20 of file BaseComposite.h.

Member Enumeration Documentation

◆ exitMode

Enumerator
destroyWindow 
quit 

Definition at line 25 of file BaseComposite.h.

Constructor & Destructor Documentation

◆ BaseComposite()

gui_framework::BaseComposite::BaseComposite ( const std::wstring & className,
const std::wstring & windowName,
const utility::ComponentSettings & settings,
const interfaces::IStyles & styles,
BaseComposite * parent = nullptr,
const std::string & windowFunctionName = "",
const std::string & moduleName = "",
uint16_t smallIconResource = NULL,
uint16_t largeIconResource = NULL )
Parameters
moduleNameName of loaded resource module with icons
smallIconResourceInteger value from auto generated Visual Studio resources
largeIconResourceInteger value from auto generated Visual Studio resources

Definition at line 154 of file BaseComposite.cpp.

◆ ~BaseComposite()

gui_framework::BaseComposite::~BaseComposite ( )
virtual

Definition at line 467 of file BaseComposite.cpp.

Member Function Documentation

◆ addPopupMenu()

Menu & gui_framework::BaseComposite::addPopupMenu ( const std::wstring & menuName)
virtual

Don't call move operator with return value.

Returns
Created pop-up menu

Reimplemented in gui_framework::ChildWindow, and gui_framework::GroupBox.

Definition at line 265 of file BaseComposite.cpp.

◆ begin()

◆ cbegin()

◆ cend()

◆ compositeWindowMessagesHandle()

LRESULT gui_framework::BaseComposite::compositeWindowMessagesHandle ( HWND handle,
UINT message,
WPARAM wparam,
LPARAM lparam,
bool & isUsed )
protectedvirtual

Definition at line 13 of file BaseComposite.cpp.

◆ createMainMenu()

unique_ptr< Menu > & gui_framework::BaseComposite::createMainMenu ( const std::wstring & menuName)
virtual

It needs to be called once.

Returns
Created main menu

Reimplemented in gui_framework::ChildWindow, and gui_framework::GroupBox.

Definition at line 256 of file BaseComposite.cpp.

◆ end()

◆ findChild() [1/2]

BaseComponent * gui_framework::BaseComposite::findChild ( const std::wstring & windowName) const

◆ findChild() [2/2]

BaseComponent * gui_framework::BaseComposite::findChild ( HWND handle) const

Definition at line 215 of file BaseComposite.cpp.

◆ findChildren()

vector< BaseComponent * > gui_framework::BaseComposite::findChildren ( const std::wstring & windowName) const

Definition at line 235 of file BaseComposite.cpp.

◆ getChildren()

const vector< unique_ptr< BaseComponent > > & gui_framework::BaseComposite::getChildren ( ) const

Definition at line 333 of file BaseComposite.cpp.

◆ getExitCode()

int gui_framework::BaseComposite::getExitCode ( ) const

Definition at line 328 of file BaseComposite.cpp.

◆ getExitMode()

BaseComposite::exitMode gui_framework::BaseComposite::getExitMode ( ) const

Definition at line 323 of file BaseComposite.cpp.

◆ getHash()

virtual size_t gui_framework::BaseComposite::getHash ( ) const
overridepure virtual

◆ getMainMenu() [1/2]

unique_ptr< Menu > & gui_framework::BaseComposite::getMainMenu ( )

Definition at line 343 of file BaseComposite.cpp.

◆ getMainMenu() [2/2]

const unique_ptr< Menu > & gui_framework::BaseComposite::getMainMenu ( ) const

Definition at line 338 of file BaseComposite.cpp.

◆ getOnDestroy()

const function< void()> & gui_framework::BaseComposite::getOnDestroy ( ) const

Definition at line 362 of file BaseComposite.cpp.

◆ getPopupMenus()

vector< const Menu * > gui_framework::BaseComposite::getPopupMenus ( ) const

Definition at line 348 of file BaseComposite.cpp.

◆ getStructure()

json::JSONBuilder gui_framework::BaseComposite::getStructure ( ) const
overridevirtual

◆ preWindowMessagesHandle()

LRESULT gui_framework::BaseComposite::preWindowMessagesHandle ( HWND handle,
UINT message,
WPARAM wparam,
LPARAM lparam,
bool & isUsed )
overrideprotectedvirtual

Reimplemented from gui_framework::BaseComponent.

Definition at line 87 of file BaseComposite.cpp.

◆ removeChild()

void gui_framework::BaseComposite::removeChild ( BaseComponent * child)

Definition at line 175 of file BaseComposite.cpp.

◆ removeComponents()

void gui_framework::BaseComposite::removeComponents ( const std::wstring & componentName)

Definition at line 190 of file BaseComposite.cpp.

◆ removePopupMenus()

void gui_framework::BaseComposite::removePopupMenus ( const std::wstring & menuName)
virtual

Remove all pop-up menus with menuName.

Parameters
menuName

Reimplemented in gui_framework::ChildWindow, and gui_framework::GroupBox.

Definition at line 274 of file BaseComposite.cpp.

◆ setBackgroundColor()

void gui_framework::BaseComposite::setBackgroundColor ( uint8_t red,
uint8_t green,
uint8_t blue )
overridevirtual

Reimplemented from gui_framework::BaseComponent.

Reimplemented in gui_framework::BaseWindow.

Definition at line 387 of file BaseComposite.cpp.

◆ setExitMode()

void gui_framework::BaseComposite::setExitMode ( exitMode mode)

Definition at line 292 of file BaseComposite.cpp.

◆ setOnDestroy() [1/2]

void gui_framework::BaseComposite::setOnDestroy ( const std::function< void()> & onDestroy)

◆ setOnDestroy() [2/2]

void gui_framework::BaseComposite::setOnDestroy ( const std::string & onDestroyFunctionName,
const std::string & onDestroyFunctionModuleName )

Load function from module. Can be seriazlied.

Parameters
onDestroyFunctionName
onDestroyFunctionModuleName
Exceptions
CantFindFunctionFromModuleException
std::out_of_rangeCan't find moduleName in loaded modules

◆ windowMessagesHandle()

LRESULT gui_framework::BaseComposite::windowMessagesHandle ( HWND handle,
UINT message,
WPARAM wparam,
LPARAM lparam,
bool & isUsed )
overrideprotectedvirtual

Reimplemented from gui_framework::BaseComponent.

Reimplemented in gui_framework::BaseMainWindow.

Definition at line 51 of file BaseComposite.cpp.

Friends And Related Symbol Documentation

◆ BaseComponent

friend class BaseComponent
friend

Definition at line 128 of file BaseComposite.h.

◆ interfaces::ICloseable

friend class interfaces::ICloseable
friend

Definition at line 130 of file BaseComposite.h.

Member Data Documentation

◆ children

std::vector<std::unique_ptr<BaseComponent> > gui_framework::BaseComposite::children
protected

Definition at line 35 of file BaseComposite.h.

◆ exitCode

int gui_framework::BaseComposite::exitCode
protected

Definition at line 34 of file BaseComposite.h.

◆ mainMenu

std::unique_ptr<Menu> gui_framework::BaseComposite::mainMenu
protected

Definition at line 37 of file BaseComposite.h.

◆ mode

exitMode gui_framework::BaseComposite::mode
protected

Definition at line 33 of file BaseComposite.h.

◆ onDestroy

std::function<void()> gui_framework::BaseComposite::onDestroy
protected

Definition at line 38 of file BaseComposite.h.

◆ onDestroyFunctionModuleName

std::string gui_framework::BaseComposite::onDestroyFunctionModuleName
protected

Definition at line 40 of file BaseComposite.h.

◆ onDestroyFunctionName

std::string gui_framework::BaseComposite::onDestroyFunctionName
protected

Definition at line 39 of file BaseComposite.h.

◆ popupMenus

std::unordered_map<HMENU, Menu> gui_framework::BaseComposite::popupMenus
protected

Definition at line 36 of file BaseComposite.h.

◆ windowFunctionName

std::string gui_framework::BaseComposite::windowFunctionName
protected

Definition at line 32 of file BaseComposite.h.


The documentation for this class was generated from the following files: