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

Setup for main application window. More...

#include <BaseMainWindow.h>

Inheritance diagram for gui_framework::BaseMainWindow:
gui_framework::BaseSeparateWindow gui_framework::BaseWindow gui_framework::interfaces::ICloseable gui_framework::interfaces::IResizableComponent gui_framework::BaseComposite gui_framework::interfaces::IComponentVisibility gui_framework::BaseComponent gui_framework::interfaces::IIterable< BaseComponent, iterators::composite_forward_iterator, iterators::composite_const_forward_iterator > gui_framework::interfaces::ISerializable

Classes

struct  Function
 

Public Member Functions

 BaseMainWindow (const std::wstring &className, const std::wstring &titleName, const utility::ComponentSettings &settings, const std::string &windowFunctionName, uint16_t trayIconResource, bool alwaysShowTray=false, bool maximize=false, bool minimize=false, const std::string &moduleName="", uint16_t smallIconResource=NULL, uint16_t largeIconResource=NULL)
 
void initTray (uint16_t trayIconResource, bool alwaysShowTrayIcon)
 
bool addTrayMenuItem (const std::wstring &text, const std::function< void()> &onClick, uint32_t *menuItemId=nullptr)
 Add tray menu text item. Works only if non NULL value passed in trayIconResource in contructor.
 
bool addTrayMenuItem (const std::wstring &text, const std::string &functionName, const std::string &moduleName, uint32_t *menuItemId=nullptr)
 Add tray menu text item. Works only if non NULL value passed in trayIconResource in contructor.
 
bool removeTrayMenuItem (const std::wstring &text)
 Remove tray menu text item.
 
void sendTrayMessage (uint32_t id)
 Process tray commands.
 
virtual size_t getHash () const override
 Used as key in creators.
 
virtual json::JSONBuilder getStructure () const override
 
virtual ~BaseMainWindow ()
 
- Public Member Functions inherited from gui_framework::BaseSeparateWindow
 BaseSeparateWindow (const std::wstring &className, const std::wstring &titleName, const utility::ComponentSettings &settings, const std::string &windowFunctionName, bool maximize=false, bool minimize=false, const std::string &moduleName="", uint16_t smallIconResource=NULL, uint16_t largeIconResource=NULL)
 
void enableResize ()
 Enable resize button and window resizing.
 
void disableResize ()
 Disable resize button and window resizing.
 
void setLargeIcon (const std::filesystem::path &pathToLargeIcon)
 Set large icon(32x32) for specific window.
 
void setSmallIcon (const std::filesystem::path &pathToSmallIcon)
 Set small icon(16x16) for specific window.
 
virtual ~BaseSeparateWindow ()
 
- Public Member Functions inherited from gui_framework::BaseWindow
 BaseWindow (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)
 
virtual void initDrawing (const std::string &pictureBlockName, uint16_t imagesWidth, uint16_t imagesHeight, utility::BaseLoadableHolder::imageType type) final
 Initialize block of pictures with same size.
 
virtual void addImage (const std::string &pictureBlockName, int x, int y, const std::filesystem::path &pathToImage)
 Draw image in window.
 
virtual void removeImage (const std::string &pictureBlockName, const std::filesystem::path &pathToImage)
 Remove image from window.
 
virtual void drawAllImages () final
 Clear window and draw all images.
 
virtual void setBackgroundColor (uint8_t red, uint8_t green, uint8_t blue) final override
 
virtual ~BaseWindow ()=default
 
- Public Member Functions inherited from 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)
 
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 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 ~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
 
- Public Member Functions inherited from gui_framework::interfaces::IComponentVisibility
 IComponentVisibility (HWND componentVisibilityHandle)
 
void show () const
 
void hide () const
 
virtual ~IComponentVisibility ()=default
 
- Public Member Functions inherited from gui_framework::interfaces::ICloseable
 ICloseable (HWND closeableHandle)
 
bool close (int exitCode)
 
virtual void setOnClose (const std::function< bool()> &onClose) final
 
virtual void setOnClose (const std::string &onCloseFunctionName, const std::string &onCloseFunctionModuleName) final
 Load function from module. Can be seriazlied.
 
virtual const std::function< bool()> & getOnClose () const final
 
virtual ~ICloseable ()=default
 
- Public Member Functions inherited from gui_framework::interfaces::IResizableComponent
 IResizableComponent (HWND resizeableHandle, HWND parent, bool autoResize=false, bool blockResize=false)
 
virtual void resize (uint16_t width, uint16_t height)
 Resize component.
 
virtual RECT calculateNewSizes (uint16_t width, uint16_t height) final
 
virtual void setBlockResize (bool blockResize) final
 
virtual void setAutoResize (bool autoResize) final
 
virtual bool getBlockResize () const final
 
virtual bool getAutoResize () const final
 
virtual ~IResizableComponent ()=default
 

Protected Member Functions

virtual void onDestroyEvent ()
 
virtual void createMarkup ()
 
virtual LRESULT windowMessagesHandle (HWND handle, UINT message, WPARAM wparam, LPARAM lparam, bool &isUsed) override
 
- Protected Member Functions inherited from gui_framework::BaseComposite
virtual LRESULT compositeWindowMessagesHandle (HWND handle, UINT message, WPARAM wparam, LPARAM lparam, bool &isUsed)
 
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.
 

Friends

class WindowHolder
 

Additional Inherited Members

- Public Types inherited from gui_framework::BaseComposite
enum class  exitMode { destroyWindow , quit }
 
- 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 ()
 
- Protected Attributes inherited from gui_framework::BaseSeparateWindow
HICON largeIcon
 
HICON smallIcon
 
std::filesystem::path pathToSmallIcon
 
std::filesystem::path pathToLargeIcon
 
- Protected Attributes inherited from gui_framework::BaseWindow
std::unordered_map< std::string, drawedImages > pictures
 
- Protected Attributes inherited from gui_framework::BaseComposite
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
 
- Protected Attributes inherited from gui_framework::interfaces::IComponentVisibility
HWND componentVisibilityHandle
 
- Protected Attributes inherited from gui_framework::interfaces::ICloseable
HWND closeableHandle
 
std::function< bool()> onClose
 
std::string onCloseFunctionName
 
std::string onCloseFunctionModuleName
 
- Protected Attributes inherited from gui_framework::interfaces::IResizableComponent
bool blockResize
 
bool autoResize
 
int initX
 
int initY
 
uint16_t initWidth
 
uint16_t initHeight
 
uint16_t parentWidth
 
uint16_t parentHeight
 

Detailed Description

Setup for main application window.

Definition at line 10 of file BaseMainWindow.h.

Constructor & Destructor Documentation

◆ BaseMainWindow()

gui_framework::BaseMainWindow::BaseMainWindow ( const std::wstring & className,
const std::wstring & titleName,
const utility::ComponentSettings & settings,
const std::string & windowFunctionName,
uint16_t trayIconResource,
bool alwaysShowTray = false,
bool maximize = false,
bool minimize = false,
const std::string & moduleName = "",
uint16_t smallIconResource = NULL,
uint16_t largeIconResource = NULL )
Parameters
trayIconResourceInteger value from auto generated Visual Studio resources. May be NULL if no tray icon
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 108 of file BaseMainWindow.cpp.

◆ ~BaseMainWindow()

gui_framework::BaseMainWindow::~BaseMainWindow ( )
virtual

Definition at line 321 of file BaseMainWindow.cpp.

Member Function Documentation

◆ addTrayMenuItem() [1/2]

bool gui_framework::BaseMainWindow::addTrayMenuItem ( const std::wstring & text,
const std::function< void()> & onClick,
uint32_t * menuItemId = nullptr )

Add tray menu text item. Works only if non NULL value passed in trayIconResource in contructor.

◆ addTrayMenuItem() [2/2]

bool gui_framework::BaseMainWindow::addTrayMenuItem ( const std::wstring & text,
const std::string & functionName,
const std::string & moduleName,
uint32_t * menuItemId = nullptr )

Add tray menu text item. Works only if non NULL value passed in trayIconResource in contructor.

◆ createMarkup()

void gui_framework::BaseMainWindow::createMarkup ( )
protectedvirtual

Definition at line 40 of file BaseMainWindow.cpp.

◆ getHash()

size_t gui_framework::BaseMainWindow::getHash ( ) const
overridevirtual

Used as key in creators.

Returns
typeid().hash_code()

Implements gui_framework::BaseSeparateWindow.

Definition at line 265 of file BaseMainWindow.cpp.

◆ getStructure()

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

Reimplemented from gui_framework::BaseSeparateWindow.

Definition at line 270 of file BaseMainWindow.cpp.

◆ initTray()

void gui_framework::BaseMainWindow::initTray ( uint16_t trayIconResource,
bool alwaysShowTrayIcon )

Definition at line 135 of file BaseMainWindow.cpp.

◆ onDestroyEvent()

void gui_framework::BaseMainWindow::onDestroyEvent ( )
protectedvirtual

Definition at line 35 of file BaseMainWindow.cpp.

◆ removeTrayMenuItem()

bool gui_framework::BaseMainWindow::removeTrayMenuItem ( const std::wstring & text)

Remove tray menu text item.

Definition at line 231 of file BaseMainWindow.cpp.

◆ sendTrayMessage()

void gui_framework::BaseMainWindow::sendTrayMessage ( uint32_t id)

Process tray commands.

Parameters
idValue from addTrayMenuItem menuItemId

Definition at line 260 of file BaseMainWindow.cpp.

◆ windowMessagesHandle()

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

Reimplemented from gui_framework::BaseComposite.

Definition at line 45 of file BaseMainWindow.cpp.

Friends And Related Symbol Documentation

◆ WindowHolder

friend class WindowHolder
friend

Definition at line 80 of file BaseMainWindow.h.


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