97 lines
2.5 KiB
C
97 lines
2.5 KiB
C
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// Name: No names yet.
|
||
|
// Purpose: Contrib. demo
|
||
|
// Author: Aleksandras Gluchovas
|
||
|
// Modified by:
|
||
|
// Created: 30/11/98 (my 22th birthday :-)
|
||
|
// RCS-ID: $Id$
|
||
|
// Copyright: (c) Aleksandras Gluchovas
|
||
|
// Licence: wxWindows license
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#ifndef __DRAGHINTSPL_G__
|
||
|
#define __DRAGHINTSPL_G__
|
||
|
|
||
|
#ifdef __GNUG__
|
||
|
#pragma interface "barhintspl.h"
|
||
|
#endif
|
||
|
|
||
|
#include "wx/fl/controlbar.h"
|
||
|
#include "wx/fl/toolwnd.h"
|
||
|
|
||
|
/*
|
||
|
* Intercepts bar-decoration and sizing events, draws 3d-hints
|
||
|
* around fixed and flexible bars, similar to those in Microsoft DevStudio 6.x
|
||
|
*/
|
||
|
|
||
|
class cbBarHintsPlugin : public cbPluginBase
|
||
|
{
|
||
|
DECLARE_DYNAMIC_CLASS( cbBarHintsPlugin )
|
||
|
|
||
|
protected:
|
||
|
cbDockPane* mpPane; // is set up temorarely, while handling event
|
||
|
|
||
|
cbMiniButton* mBoxes[2];
|
||
|
|
||
|
bool mBtnPressed;
|
||
|
bool mClosePressed;
|
||
|
cbBarInfo* mpClickedBar;
|
||
|
bool mDepressed;
|
||
|
|
||
|
protected:
|
||
|
// drawing helpers
|
||
|
|
||
|
void Draw3DBox ( wxDC& dc, const wxPoint& pos, bool pressed );
|
||
|
void DrawCloseBox ( wxDC& dc, const wxPoint& pos, bool pressed );
|
||
|
void DrawCollapseBox( wxDC& dc, const wxPoint& pos,
|
||
|
bool atLeft, bool disabled, bool pressed );
|
||
|
|
||
|
void DrawGrooves ( wxDC& dc, const wxPoint& pos, int length );
|
||
|
|
||
|
void DoDrawHint( wxDC& dc, wxRect& rect, int pos, int boxOfs, int grooveOfs, bool isFixed );
|
||
|
|
||
|
void GetHintsLayout( wxRect& rect, cbBarInfo& info,
|
||
|
int& boxOfs, int& grooveOfs, int& pos );
|
||
|
|
||
|
int HitTestHints( cbBarInfo& info, const wxPoint& pos );
|
||
|
|
||
|
void ExcludeHints( wxRect& rect, cbBarInfo& info );
|
||
|
|
||
|
void CreateBoxes();
|
||
|
|
||
|
public:
|
||
|
/* public properties */
|
||
|
|
||
|
bool mCloseBoxOn; // default: ON
|
||
|
bool mCollapseBoxOn; // default: ON
|
||
|
int mGrooveCount; // default: 2 (two shaded bars)
|
||
|
int mHintGap; // default: 5 (pixels from above, below, right and left)
|
||
|
int mXWeight; // default: 2 (width in pixels of lines which used for drawing cross)
|
||
|
|
||
|
public:
|
||
|
|
||
|
cbBarHintsPlugin(void);
|
||
|
|
||
|
cbBarHintsPlugin( wxFrameLayout* pLayout, int paneMask = wxALL_PANES );
|
||
|
|
||
|
~cbBarHintsPlugin();
|
||
|
|
||
|
void SetGrooveCount( int nGrooves );
|
||
|
|
||
|
void OnInitPlugin();
|
||
|
|
||
|
// handlers of plugin-events
|
||
|
|
||
|
void OnSizeBarWindow( cbSizeBarWndEvent& event );
|
||
|
void OnDrawBarDecorations( cbDrawBarDecorEvent& event );
|
||
|
|
||
|
void OnLeftDown( cbLeftDownEvent& event );
|
||
|
void OnLeftUp ( cbLeftUpEvent& event );
|
||
|
void OnMotion ( cbMotionEvent& event );
|
||
|
|
||
|
DECLARE_EVENT_TABLE()
|
||
|
};
|
||
|
|
||
|
#endif /* __DRAGHINTSPL_G__ */
|
||
|
|