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 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 wxExcelInterior::SetPatternColor(const wxColour& patternColor) { InvokePutProperty(wxS("PatternColor"), (long)patternColor.GetRGB()); }
void wxExcelInterior::SetColor(const wxColour& color) { InvokePutProperty(wxS("Color"), (long)color.GetRGB()); }
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; }