/* Copyright (C) 2011-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: Dk4WxColourView.cpt */ /** @file Dk4WxColourView.h Header file for the Dk4WxColourView module. */ #ifndef DK4WXCOLOURVIEW_H_INCLUDED /** Avoid multiple inclusions. */ #define DK4WXCOLOURVIEW_H_INCLUDED 1 #line 9 "Dk4WxColourView.cpt" #ifndef DK4CONF_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4conf.h" #else #include #endif #endif #ifndef DK4TYPES_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4types.h" #else #include #endif #endif #include #ifdef __BORLANDC__ #pragma hdrstop #endif #ifndef WX_PRECOMP #include #endif #ifndef DK4WXAPPLICATIONHELPER_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "Dk4WxApplicationHelper.h" #else #include #endif #endif #if wxCHECK_VERSION(3,0,0) /** Event generated if the colour was changed. */ wxDECLARE_EVENT(wxEVT_DK4_COLOUR_VIEW_EVENT, wxCommandEvent); #else /** Event generated if the colour was changed. */ BEGIN_DECLARE_EVENT_TYPES() DECLARE_EVENT_TYPE(wxEVT_DK4_COLOUR_VIEW_EVENT, -1) END_DECLARE_EVENT_TYPES() #endif /** Show color setting, show colour chooser on mouse click. */ class Dk4WxColourView : public wxControl { /** Declare class as dynamic. */ #if wxCHECK_VERSION(3,0,0) wxDECLARE_DYNAMIC_CLASS(Dk4WxColourView); #else DECLARE_DYNAMIC_CLASS(Dk4WxColourView) #endif /** Event table for control. */ #if wxCHECK_VERSION(3,0,0) wxDECLARE_EVENT_TABLE(); #else DECLARE_EVENT_TABLE() #endif protected: /** Parent window. */ wxWindow *pParentWindow; /** Application helper, used to position color chooser dialog. */ Dk4WxApplicationHelper *pHelper; /** Class name, used in constructor and Create(). */ static wxChar const Dk4WxColourViewName[]; /** ID to use in generated events. */ wxWindowID m_wxid; /** Height. */ int w; /** Width. */ int h; /** Red component of color to show. */ int r; /** Green component of color to show. */ int g; /** Blue component of color to show. */ int b; /** Previous x position of color chooser dialog. */ int ccdx; /** Previous y position of color chooser dialog. */ int ccdy; /** Previous x position of color palette dialog. */ int cpdx; /** Previous x position of color palette dialog. */ int cpdy; /** Activity flag, allow to choose a color. */ bool bActive; /** Flag: Prefer platte over normal view. */ bool bPalettePreferred; /** Flag: Set position for colour chooser. */ bool bPlaceColourChooser; /** Flag: Show active/inactive state. */ bool bMarkActiveInactive; /** Flag: Show colour chooser with a border. */ bool bWithBorder; protected: /** Send event for changed colour. */ void SendColourViewEvent(void); /** Place colour chooser dialog. @param dlg Dialog to place. @param x Saved x coordinate or -1. @param y Saved y coordinate or -1. */ void PlaceColourChooser(wxWindow & dlg, int x, int y); /** Run the system colour chooser. */ void RunSystemColourChooser(void); /** Run the palette based colour chooser. */ void RunPaletteColourChooser(void); public: /** Default constructor. */ Dk4WxColourView(); /** Constructor. @param pParent Parent window. @param wxid Window ID. @param appHelper Application helper. @param red Red component of color to show. @param green Green component of color to show. @param blue Blue component of color to show. @param pos Object position. @param size Object minimum size. @param style Style for control. @param name Class name. */ Dk4WxColourView( wxWindow *pParent, wxWindowID wxid, Dk4WxApplicationHelper *appHelper, int red, int green, int blue, wxPoint const & pos = wxDefaultPosition, wxSize const & size = wxDefaultSize, long style = wxBORDER_NONE, wxChar const *name = Dk4WxColourViewName ); /** Create object after using default constructor. @param pParent Parent window. @param wxid Window ID. @param appHelper Application helper. @param red Red component of color to show. @param green Green component of color to show. @param blue Blue component of color to show. @param pos Object position. @param size Object minimum size. @param style Style for control. @param name Class name. @return true on success, false on error. */ bool Create( wxWindow *pParent, wxWindowID wxid, Dk4WxApplicationHelper *appHelper, int red = 255, int green = 255, int blue = 255, wxPoint const & pos = wxDefaultPosition, wxSize const & size = wxDefaultSize, long style = wxBORDER_NONE, wxChar const *name = Dk4WxColourViewName ); /** Find minimum size. */ wxSize DoGetBestSize() const; /** Get red component of current color. @return Red. */ int Red() const; /** Get green component of current color. @return Green. */ int Green() const; /** Get blue component of current color. @return Blue. */ int Blue() const; /** Set new current color. @param red Red. @param green Green. @param blue Blue. */ void SetRGB(int red, int green, int blue); /** Set activity flag. */ void SetActive(bool b); /** Set palette as preferred method to choose a color. */ void SetPalettePreferred(bool b = true); /** Set whether to place the colour chooser near the colour view. @param b New flag value. */ void SetPlaceColourChooser(bool b = true); /** Set whether to indicate active/inactive state. @param b new flag value. */ void SetMarkActiveInactive(bool b = true); /** Set up border for colour chooser. @param b Flag for border. */ void SetColourChooserWithBorder(bool b = true); /** Handler for erase event. @param event Event to process. */ void OnErase(wxEraseEvent & event); /** Handler for paint event. @param event Event to process. */ void OnPaint(wxPaintEvent & event); /** Handler for mouse click event. @param event Event to process. */ void OnLeftMouseButtonDown(wxMouseEvent & event); /** Handler for right mouse click event. @param event Event to process. */ void OnRightMouseButtonDown(wxMouseEvent & event); }; /* vim: set ai sw=4 ts=4 : */ #endif