From e87fd473f1ba0ac234d35838933e388a294ad4fa Mon Sep 17 00:00:00 2001 From: guy Date: Mon, 17 Nov 2008 10:02:54 +0000 Subject: [PATCH] Patch level : 10.0 Files correlati : xvaga.dll Ricompilazione Demo : [ ] Commento : Corretta colorazione del gripper delle toolbar. Corretta gestione help su moduli mancanti visualizzando help principale git-svn-id: svn://10.65.10.50/trunk@17650 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- xvaga/oswin32.cpp | 7 +++---- xvaga/xvaga.cpp | 16 ++++++++++------ xvaga/xvtctl.cpp | 29 ++++++++++++++++++++++------- 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/xvaga/oswin32.cpp b/xvaga/oswin32.cpp index ee32e98b9..d83402d91 100755 --- a/xvaga/oswin32.cpp +++ b/xvaga/oswin32.cpp @@ -482,14 +482,13 @@ static wxString FindHelpFile(const char* topic) int OsWin32_Help(WXHWND handle, const char* hlp, unsigned int cmd, const char* topic) { - HWND hwnd = (HWND)handle; - wxString str; switch(cmd) { case M_HELP_ONCONTEXT: str = FindHelpFile(topic); - break; + if (wxFileExists(str)) + break; default: str = GetHelpDir(); str += "index.html"; @@ -497,7 +496,7 @@ int OsWin32_Help(WXHWND handle, const char* hlp, unsigned int cmd, const char* t } if (!str.IsEmpty() && wxFileExists(str)) { - ::ShellExecute(hwnd, "open", str, NULL, NULL, SW_SHOWDEFAULT); + ::ShellExecute((HWND)handle, "open", str, NULL, NULL, SW_SHOWDEFAULT); return true; } OsWin32_Beep(1); diff --git a/xvaga/xvaga.cpp b/xvaga/xvaga.cpp index e922d26e8..3fd18917f 100755 --- a/xvaga/xvaga.cpp +++ b/xvaga/xvaga.cpp @@ -1348,10 +1348,14 @@ void TFontId::Copy(const wxFont& rFont) void xvt_dwin_clear(WINDOW win, COLOR col) { - CAST_WIN(win, w); - CAST_COLOR(col, colour); - w.SetOwnBackgroundColour(colour); - w.ClearBackground(); + if (win != NULL_WIN && win != PRINTER_WIN) + { + CAST_DC(win, dc); + CAST_COLOR(col, colour); + wxBrush* brush = wxTheBrushList->FindOrCreateBrush(colour, wxSOLID); + dc.SetBackground(*brush); + dc.Clear(); + } } void xvt_dwin_draw_arc(WINDOW win, const RCT* r, int sx, int sy, int ex, int ey) @@ -1381,7 +1385,7 @@ void xvt_dwin_draw_gradient_circular(WINDOW win, const RCT* r, COLOR col1, COLOR void xvt_dwin_draw_gradient_linear(WINDOW win, const RCT* r, COLOR col1, COLOR col2, int angle) { - if (r != NULL) + if (win != NULL_WIN && r != NULL) { CAST_DC(win, dc); const wxRect rect = NormalizeRCT(r); @@ -1687,7 +1691,7 @@ BOOLEAN xvt_dwin_is_update_needed(WINDOW win, const RCT* rctp) return TRUE; CAST_WIN(win, w); // child windows and TASK_WIN const wxRect rect1 = NormalizeRCT(rctp); - const wxRect rect2 = w.GetUpdateRegion().GetBox(); + const wxRect rect2 = w.GetUpdateClientRect(); // w.GetUpdateRegion().GetBox(); return RectIntersect(rect1, rect2); } return FALSE; diff --git a/xvaga/xvtctl.cpp b/xvaga/xvtctl.cpp index 3cbd30fe9..ca9cdae34 100755 --- a/xvaga/xvtctl.cpp +++ b/xvaga/xvtctl.cpp @@ -541,7 +541,15 @@ public: wxAuiTabArt* TwxAuiDefaultTabArt::Clone() { TwxAuiDefaultTabArt* art = new TwxAuiDefaultTabArt(); + + // Copy'n'paste from aui/auibook.cpp + art->SetNormalFont(m_normal_font); + art->SetSelectedFont(m_selected_font); + art->SetMeasuringFont(m_measuring_font); + + // My own addition art->m_base_colour = m_base_colour; + return art; } @@ -1537,6 +1545,7 @@ TwxToolBar::TwxToolBar(wxWindow* parent, wxWindowID id, const wxPoint& pos, cons static TwxToolBar* Win2Bar(WINDOW win) { + wxASSERT(win != NULL_WIN); return wxDynamicCast((wxObject*)win, TwxToolBar); } @@ -1708,20 +1717,26 @@ void xvt_toolbar_realize(WINDOW win) UnlockPane(win); } } - ptb->UpdateWindowUI(); + // Iucunde repetita juvant: forzo il colore del gripper che viene spesso dimenticato + wxAuiDockArt* pArtist = FindArtist(ptb); + if (pArtist != NULL) + pArtist->SetColor(wxAUI_DOCKART_GRIPPER_COLOUR, ptb->GetBackgroundColour()); } } void xvt_toolbar_show_control(WINDOW win, int cid, BOOLEAN on) { - wxASSERT(on); // Per ora non so come si faccia - /* - TwxToolBar* ptb = Win2Bar(win); - if (ptb != NULL && cid > 0) + if (win != NULL_WIN && cid > 0) { - // ???? + wxASSERT(on);// Per ora non so come si faccia + /* + TwxToolBar* ptb = Win2Bar(win); + if (ptb != NULL && cid > 0) + { + // ???? + } + */ } - */ } // Funzione di utilita' un po' fuori posto (per poter accedere alla _GetToolResource)