Add support for wxSTB_ELLIPSIZE_* and for wxSTB_SHOW_TIPS flags under wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60388 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -14,6 +14,9 @@
|
||||
|
||||
#if wxUSE_NATIVE_STATUSBAR
|
||||
|
||||
#include "wx/vector.h"
|
||||
#include "wx/tooltip.h"
|
||||
|
||||
class WXDLLIMPEXP_FWD_CORE wxClientDC;
|
||||
|
||||
class WXDLLIMPEXP_CORE wxStatusBar : public wxStatusBarBase
|
||||
@@ -41,7 +44,7 @@ public:
|
||||
virtual void SetFieldsCount(int number = 1, const int *widths = NULL);
|
||||
|
||||
// each field of status line has it's own text
|
||||
virtual void SetStatusText(const wxString& text, int number = 0);
|
||||
virtual void SetStatusText(const wxString& text, int number = 0);
|
||||
|
||||
// set status line fields' widths
|
||||
virtual void SetStatusWidths(int n, const int widths_field[]);
|
||||
@@ -64,6 +67,7 @@ public:
|
||||
virtual WXLRESULT MSWWindowProc(WXUINT nMsg,
|
||||
WXWPARAM wParam,
|
||||
WXLPARAM lParam);
|
||||
|
||||
protected:
|
||||
void CopyFieldsWidth(const int widths[]);
|
||||
void SetFieldsWidth();
|
||||
@@ -72,10 +76,17 @@ protected:
|
||||
// override some base class virtuals
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
virtual void DoMoveWindow(int x, int y, int width, int height);
|
||||
#if wxUSE_TOOLTIPS
|
||||
virtual bool MSWProcessMessage(WXMSG* pMsg);
|
||||
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result);
|
||||
#endif
|
||||
|
||||
// used by UpdateFieldText
|
||||
wxClientDC *m_pDC;
|
||||
|
||||
// the tooltips used when wxSTB_SHOW_TIPS is given
|
||||
wxVector<wxToolTip*> m_tooltips;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxStatusBar)
|
||||
};
|
||||
|
@@ -22,6 +22,11 @@ public:
|
||||
// ctor & dtor
|
||||
wxToolTip(const wxString &tip);
|
||||
virtual ~wxToolTip();
|
||||
|
||||
// ctor used by wxStatusBar to associate a tooltip to a portion of
|
||||
// the status bar window:
|
||||
wxToolTip(wxWindow* win, unsigned int id,
|
||||
const wxString &tip, const wxRect& rc);
|
||||
|
||||
// accessors
|
||||
// tip text
|
||||
@@ -49,14 +54,18 @@ public:
|
||||
// implementation only from now on
|
||||
// -------------------------------
|
||||
|
||||
// should be called in responde to WM_MOUSEMOVE
|
||||
// should be called in response to WM_MOUSEMOVE
|
||||
static void RelayEvent(WXMSG *msg);
|
||||
|
||||
// add a window to the tooltip control
|
||||
void Add(WXHWND hwnd);
|
||||
|
||||
// remove any tooltip from the window
|
||||
static void Remove(WXHWND hwnd);
|
||||
static void Remove(WXHWND hwnd, unsigned int id, const wxRect& rc);
|
||||
|
||||
// the rect we're associated with
|
||||
void SetRect(const wxRect& rc);
|
||||
const wxRect& GetRect() const { return m_rect; }
|
||||
|
||||
private:
|
||||
// the one and only one tooltip control we use - never access it directly
|
||||
@@ -73,7 +82,10 @@ private:
|
||||
void Remove();
|
||||
|
||||
wxString m_text; // tooltip text
|
||||
wxWindow *m_window; // window we're associated with
|
||||
wxWindow* m_window; // window we're associated with
|
||||
wxRect m_rect; // the rect of the window for which this tooltip is shown
|
||||
// (or a rect with width/height == 0 to show it for the entire window)
|
||||
unsigned int m_id; // the id of this tooltip (ignored when m_rect width/height is 0)
|
||||
|
||||
DECLARE_ABSTRACT_CLASS(wxToolTip)
|
||||
wxDECLARE_NO_COPY_CLASS(wxToolTip);
|
||||
|
@@ -183,8 +183,21 @@ public:
|
||||
virtual bool CanBeOutsideClientArea() const { return true; }
|
||||
|
||||
protected:
|
||||
|
||||
// wxWindow overrides:
|
||||
|
||||
virtual void DoSetToolTip( wxToolTip *tip )
|
||||
{
|
||||
wxASSERT_MSG(!HasFlag(wxSTB_SHOW_TIPS),
|
||||
"Do not set tooltip(s) manually when using wxSTB_SHOW_TIPS!");
|
||||
return wxWindow::DoSetToolTip(tip);
|
||||
}
|
||||
|
||||
virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
|
||||
|
||||
|
||||
// internal helpers & data:
|
||||
|
||||
// calculate the real field widths for the given total available size
|
||||
wxArrayInt CalculateAbsWidths(wxCoord widthTotal) const;
|
||||
|
||||
|
Reference in New Issue
Block a user