static void DrawButtons(wxDC& dc, const wxRect& _rect, const wxBitmap& bmp, const wxColour& bkcolour, int button_state) { wxRect rect = _rect; if (button_state == wxAUI_BUTTON_STATE_PRESSED) { rect.x++; rect.y++; } if (button_state == wxAUI_BUTTON_STATE_HOVER || button_state == wxAUI_BUTTON_STATE_PRESSED) { dc.SetBrush(wxBrush(bkcolour.ChangeLightness(120))); dc.SetPen(wxPen(bkcolour.ChangeLightness(75))); // draw the background behind the button dc.DrawRectangle(rect.x, rect.y, 15, 15); } // draw the button itself dc.DrawBitmap(bmp, rect.x, rect.y, true); }
// wxAuiDefaultDockArt is an art provider class which does all of the drawing for // wxAuiManager. This allows the library caller to customize the dock art // (probably by deriving from this class), or to completely replace all drawing // with custom dock art (probably by writing a new stand-alone class derived // from the wxAuiDockArt base class). The active dock art class can be set via // wxAuiManager::SetDockArt() wxColor wxAuiLightContrastColour(const wxColour& c) { int amount = 120; // if the color is especially dark, then // make the contrast even lighter if (c.Red() < 128 && c.Green() < 128 && c.Blue() < 128) amount = 160; return c.ChangeLightness(amount); }
void clTabRendererClassic::InitLightColours(clTabColours& colours, const wxColour& activeTabBGColour) { // Active tab clColours c; c.InitFromColour(activeTabBGColour.ChangeLightness(90)); colours.activeTabTextColour = c.GetItemTextColour(); colours.activeTabBgColour = activeTabBGColour; colours.activeTabPenColour = c.GetBorderColour(); colours.activeTabInnerPenColour = c.GetBgColour(); // Inactive tab colours.inactiveTabBgColour = c.GetBgColour(); colours.inactiveTabTextColour = c.GetGrayText(); colours.inactiveTabPenColour = c.GetBgColour(); colours.inactiveTabInnerPenColour = c.GetBgColour(); colours.tabAreaColour = c.GetBgColour(); }
void wxListCtrlBase::EnableAlternateRowColours(bool enable) { if ( enable ) { // This code is copied from wxDataViewMainWindow::OnPaint() // Determine the alternate rows colour automatically from the // background colour. const wxColour bgColour = GetBackgroundColour(); // Depending on the background, alternate row color // will be 3% more dark or 50% brighter. int alpha = bgColour.GetRGB() > 0x808080 ? 97 : 150; SetAlternateRowColour(bgColour.ChangeLightness(alpha)); } else // Disable striping by setting invalid alternative colour. { SetAlternateRowColour(wxColour()); } }
void clAuiGlossyTabArt::DoGetTabAreaBackgroundColour(wxColour& bgColour, wxColour& penColour) { bgColour = wxColour(EditorConfigST::Get()->GetCurrentOutputviewBgColour()); // Determine the pen colour if ( DrawingUtils::IsDark(bgColour)) { penColour = DrawingUtils::LightColour(bgColour, 4.0); } else { penColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW); } // Now set the bg colour. It must be done after setting // the pen colour bgColour = DrawingUtils::GetAUIPaneBGColour(); // Allow the plugins to override the default colours clColourEvent colourEvent( wxEVT_GET_TAB_BORDER_COLOUR ); if ( EventNotifier::Get()->ProcessEvent( colourEvent ) ) { penColour = colourEvent.GetBorderColour(); bgColour = penColour.ChangeLightness(150); } }
void wxTrunkListView::EnableAlternateRowColours(bool enable) { if (enable) { // Determine the alternate rows colour automatically from the // background colour. const wxColour bgColour = GetBackgroundColour(); // Depending on the background, alternate row color // will be 3% more dark or 50% brighter. #if (wxVERSION_NUMBER >= 2900) int alpha = (bgColour.GetRGB() > 0x808080) ? 97 : 150; m_alternateRowColour.SetBackgroundColour(bgColour.ChangeLightness(alpha)); #else int alpha = ((bgColour.Red() | (bgColour.Green() << 8) | (bgColour.Blue() << 16)) > 0x808080) ? 97 : 150; m_alternateRowColour.SetBackgroundColour(wxColourBase_ChangeLightness(bgColour, alpha)); #endif } else { m_alternateRowColour.SetBackgroundColour(wxColour()); } }
void clTabColours::InitFromColours(const wxColour& baseColour, const wxColour& textColour) { #if CL_BUILD if(DrawingUtils::IsDark(baseColour)) { activeTabTextColour = "WHITE"; activeTabBgColour = baseColour; activeTabPenColour = baseColour.ChangeLightness(80); activeTabInnerPenColour = baseColour.ChangeLightness(120); inactiveTabTextColour = "WHITE"; inactiveTabBgColour = baseColour.ChangeLightness(110); inactiveTabPenColour = inactiveTabBgColour.ChangeLightness(80); inactiveTabInnerPenColour = inactiveTabBgColour.ChangeLightness(120); tabAreaColour = baseColour.ChangeLightness(130); // 12x12 bitmap closeButton = wxXmlResource::Get()->LoadBitmap("notebook-dark-x"); chevronDown = wxXmlResource::Get()->LoadBitmap("chevron-down-grey"); } else { activeTabTextColour = "BLACK"; activeTabBgColour = baseColour; activeTabPenColour = baseColour.ChangeLightness(80); activeTabInnerPenColour = "WHITE"; inactiveTabTextColour = "BLACK"; inactiveTabBgColour = baseColour.ChangeLightness(90); inactiveTabPenColour = inactiveTabBgColour.ChangeLightness(80); inactiveTabInnerPenColour = baseColour; tabAreaColour = baseColour.ChangeLightness(130); // 12x12 bitmap closeButton = wxXmlResource::Get()->LoadBitmap("notebook-light-x"); chevronDown = wxXmlResource::Get()->LoadBitmap("chevron-down-black"); } #else wxUnusedVar(baseColour); wxUnusedVar(textColour); #endif }
bool CDlgEventLog::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) { ////@begin CDlgEventLog member initialisation CMainDocument* pDoc = wxGetApp().GetDocument(); wxASSERT(pDoc); wxASSERT(wxDynamicCast(pDoc, CMainDocument)); m_iPreviousRowCount = 0; m_iTotalDocCount = 0; m_iPreviousFirstMsgSeqNum = pDoc->GetFirstMsgSeqNum(); m_iPreviousLastMsgSeqNum = m_iPreviousFirstMsgSeqNum - 1; m_iNumDeletedFilteredRows = 0; m_iTotalDeletedFilterRows = 0; if (!s_bIsFiltered) { s_strFilteredProjectName.clear(); } m_iFilteredIndexes.Clear(); m_bProcessingRefreshEvent = false; m_bWasConnected = false; m_bEventLogIsOpen = true; ////@end CDlgEventLog member initialisation CSkinAdvanced* pSkinAdvanced = wxGetApp().GetSkinManager()->GetAdvanced(); wxPoint oTempPoint; wxSize oTempSize; wxASSERT(pSkinAdvanced); wxASSERT(wxDynamicCast(pSkinAdvanced, CSkinAdvanced)); if ((pos == wxDefaultPosition) && (size == wxDefaultSize)) { // Get size and position from the previous configuration GetWindowDimensions( oTempPoint, oTempSize ); #ifdef __WXMSW__ // Get the current display space for the current window int iDisplay = wxNOT_FOUND; if ( wxGetApp().GetFrame() != NULL ) iDisplay = wxDisplay::GetFromWindow(wxGetApp().GetFrame()); if ( iDisplay == wxNOT_FOUND ) iDisplay = 0; wxDisplay *display = new wxDisplay(iDisplay); wxRect rDisplay = display->GetClientArea(); // Check that the saved height and width is not larger than the displayable space. // If it is, then reduce the size. if ( oTempSize.GetWidth() > rDisplay.width ) oTempSize.SetWidth(rDisplay.width); if ( oTempSize.GetHeight() > rDisplay.height ) oTempSize.SetHeight(rDisplay.height); // Check if part of the display was going to be off the screen, if so, center the // display on that axis if ( oTempPoint.x < rDisplay.x ) { oTempPoint.x = rDisplay.x; } else if ( oTempPoint.x + oTempSize.GetWidth() > rDisplay.x + rDisplay.width ) { oTempPoint.x = rDisplay.x + rDisplay.width - oTempSize.GetWidth(); } if ( oTempPoint.y < rDisplay.y ) { oTempPoint.y = rDisplay.y; } else if ( oTempPoint.y + oTempSize.GetHeight() > rDisplay.y + rDisplay.height ) { oTempPoint.y = rDisplay.y + rDisplay.height - oTempSize.GetHeight(); } delete display; #endif #ifdef __WXMAC__ // If the user has changed the arrangement of multiple // displays, make sure the window title bar is still on-screen. if (!IsWindowOnScreen(oTempPoint.x, oTempPoint.y, oTempSize.GetWidth(), oTempSize.GetHeight())) { oTempPoint.y = oTempPoint.x = 30; } #endif // ! __WXMAC__ } else { oTempPoint = pos; oTempSize = size; } DlgEventLogBase::Create( parent, id, caption, oTempPoint, oTempSize, style ); SetSizeHints(DLGEVENTLOG_MIN_WIDTH, DLGEVENTLOG_MIN_HEIGHT); SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS); // Initialize Application Title wxString strCaption = caption; if (strCaption.IsEmpty()) { strCaption.Printf(_("%s - Event Log"), pSkinAdvanced->GetApplicationName().c_str()); } SetTitle(strCaption); // Initialize Application Icon SetIcons(*pSkinAdvanced->GetApplicationIcon()); CreateControls(); // Create List Pane Items m_pList->InsertColumn(COLUMN_PROJECT, _("Project"), wxLIST_FORMAT_LEFT, 109); m_pList->InsertColumn(COLUMN_TIME, _("Time"), wxLIST_FORMAT_LEFT, 130); m_pList->InsertColumn(COLUMN_MESSAGE, _("Message"), wxLIST_FORMAT_LEFT, 378); m_pMessageInfoAttr = new wxListItemAttr( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT), wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW), wxNullFont ); m_pMessageErrorAttr = new wxListItemAttr( *wxRED, wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW), wxNullFont ); #if EVENT_LOG_STRIPES m_pList->EnableAlternateRowColours(); wxColour stripe_color; #if wxCHECK_VERSION(3, 1, 0) stripe_color = m_pList->GetAlternateRowColour(); if (!stripe_color.IsOk()) #endif { // copied from wxListCtrlBase::EnableAlternateRowColours(bool) // Determine the alternate rows colour automatically from the // background colour. const wxColour bgColour = m_pList->GetBackgroundColour(); // Depending on the background, alternate row color // will be 3% more dark or 50% brighter. int alpha = bgColour.GetRGB() > 0x808080 ? 97 : 150; stripe_color = bgColour.ChangeLightness(alpha); } #ifdef __WXMSW__ // work around a bug in wxWidgets 3.1 and earlier // if row background color is wxSYS_COLOR_BTNFACE selected unfocused row is drawn with wrong colors if (stripe_color == wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)) { // adjust the color just enough to make it different stripe_color.SetRGB(stripe_color.GetRGB() + 1); } #endif m_pMessageInfoGrayAttr = new wxListItemAttr( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT), stripe_color, wxNullFont ); m_pMessageErrorGrayAttr = new wxListItemAttr( *wxRED, stripe_color, wxNullFont ); #else m_pMessageInfoGrayAttr = new wxListItemAttr(*m_pMessageInfoAttr); m_pMessageErrorGrayAttr = new wxListItemAttr(*m_pMessageErrorAttr); #endif SetTextColor(); RestoreState(); OnRefresh(); // Register that we had the Event Log open immediately SaveState(); m_Shortcuts[0].Set(wxACCEL_CTRL|wxACCEL_SHIFT, (int)'F', ID_SGDIAGNOSTICLOGFLAGS); m_pAccelTable = new wxAcceleratorTable(1, m_Shortcuts); SetAcceleratorTable(*m_pAccelTable); return true; }