Added fl (frame layout) to wxWindows, from source tidied by Hans Van Leemputten <Hansvl@softhome.net>.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11170 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
165
contrib/include/wx/fl/newbmpbtn.h
Normal file
165
contrib/include/wx/fl/newbmpbtn.h
Normal file
@@ -0,0 +1,165 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: No names yet.
|
||||
// Purpose: Contrib. demo
|
||||
// Author: Aleksandras Gluchovas
|
||||
// Modified by:
|
||||
// Created: ??/09/98
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Aleksandras Gluchovas
|
||||
// Licence: wxWindows license
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __NEWBMPBTN_G__
|
||||
#define __NEWBMPBTN_G__
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "newbmpbtn.h"
|
||||
#endif
|
||||
|
||||
#include "wx/button.h"
|
||||
#include "wx/string.h"
|
||||
|
||||
// button lable-text alignment types
|
||||
|
||||
#define NB_ALIGN_TEXT_RIGHT 0
|
||||
#define NB_ALIGN_TEXT_BOTTOM 1
|
||||
#define NB_NO_TEXT 2
|
||||
#define NB_NO_IMAGE 3
|
||||
|
||||
// classes declared in this header file
|
||||
|
||||
class wxNewBitmapButton;
|
||||
class wxBorderLessBitmapButton;
|
||||
|
||||
// alternative class for wxBmpButton
|
||||
|
||||
class wxNewBitmapButton: public wxPanel
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxNewBitmapButton)
|
||||
|
||||
protected:
|
||||
|
||||
friend class wxNewBitmapButtonSerializer;
|
||||
|
||||
int mTextToLabelGap;
|
||||
int mMarginX;
|
||||
int mMarginY;
|
||||
int mTextAlignment;
|
||||
bool mIsSticky;
|
||||
bool mIsFlat;
|
||||
|
||||
wxString mLabelText;
|
||||
wxString mImageFileName;
|
||||
int mImageFileType;
|
||||
|
||||
wxBitmap mDepressedBmp; // source image for rendering
|
||||
// labels for particular state
|
||||
|
||||
wxBitmap mFocusedBmp; // may not be always present -
|
||||
// only if mHasFocusedBmp is TRUE
|
||||
|
||||
wxBitmap* mpDepressedImg;
|
||||
wxBitmap* mpPressedImg;
|
||||
wxBitmap* mpDisabledImg;
|
||||
wxBitmap* mpFocusedImg;
|
||||
|
||||
// button state variables;
|
||||
bool mDragStarted;
|
||||
bool mIsPressed;
|
||||
bool mIsInFocus;
|
||||
bool mPrevPressedState;
|
||||
bool mPrevInFocusState;
|
||||
|
||||
bool mHasFocusedBmp;
|
||||
|
||||
// type of event which is fired upon depression of this button
|
||||
int mFiredEventType;
|
||||
|
||||
// pens for drawing decorations (borders)
|
||||
wxPen mBlackPen;
|
||||
wxPen mDarkPen;
|
||||
wxPen mGrayPen;
|
||||
wxPen mLightPen;
|
||||
|
||||
bool mIsCreated;
|
||||
int mSizeIsSet;
|
||||
|
||||
protected:
|
||||
void DestroyLabels();
|
||||
|
||||
// returns the label which match the current button state
|
||||
virtual wxBitmap* GetStateLabel();
|
||||
|
||||
virtual void DrawShade( int outerLevel,
|
||||
wxDC& dc,
|
||||
wxPen& upperLeftSidePen,
|
||||
wxPen& lowerRightSidePen );
|
||||
|
||||
bool IsInWindow( int x,int y );
|
||||
|
||||
public:
|
||||
|
||||
wxNewBitmapButton( const wxBitmap& labelBitmap = wxNullBitmap,
|
||||
const wxString& labelText = "",
|
||||
int alignText = NB_ALIGN_TEXT_BOTTOM,
|
||||
bool isFlat = TRUE,
|
||||
// this is the default type of fired events
|
||||
int firedEventType = wxEVT_COMMAND_MENU_SELECTED,
|
||||
int marginX = 2,
|
||||
int marginY = 2,
|
||||
int textToLabelGap = 2,
|
||||
bool isSticky = FALSE
|
||||
);
|
||||
|
||||
// use this constructor if buttons have to be persistant
|
||||
|
||||
wxNewBitmapButton( const wxString& bitmapFileName,
|
||||
const int bitmapFileType = wxBITMAP_TYPE_BMP,
|
||||
const wxString& labelText = "",
|
||||
int alignText = NB_ALIGN_TEXT_BOTTOM,
|
||||
bool isFlat = TRUE,
|
||||
// this is the default type of fired events
|
||||
int firedEventType = wxEVT_COMMAND_MENU_SELECTED,
|
||||
int marginX = 2,
|
||||
int marginY = 2,
|
||||
int textToLabelGap = 2,
|
||||
bool isSticky = FALSE
|
||||
);
|
||||
|
||||
~wxNewBitmapButton();
|
||||
|
||||
// should be called after Create();
|
||||
virtual void Reshape();
|
||||
|
||||
// overridables
|
||||
virtual void SetLabel(const wxBitmap& labelBitmap, const wxString& labelText = "" );
|
||||
|
||||
virtual void SetAlignments( int alignText = NB_ALIGN_TEXT_BOTTOM,
|
||||
int marginX = 2,
|
||||
int marginY = 2,
|
||||
int textToLabelGap = 2);
|
||||
|
||||
virtual void DrawDecorations( wxDC& dc );
|
||||
virtual void DrawLabel( wxDC& dc );
|
||||
|
||||
virtual void RenderLabelImage( wxBitmap*& destBmp, wxBitmap* srcBmp,
|
||||
bool isEnabled = TRUE,
|
||||
bool isPressed = FALSE);
|
||||
|
||||
virtual void RenderLabelImages();
|
||||
virtual void RenderAllLabelImages();
|
||||
|
||||
// event handlers
|
||||
void OnLButtonDown( wxMouseEvent& event );
|
||||
void OnLButtonUp( wxMouseEvent& event );
|
||||
void OnMouseMove( wxMouseEvent& event );
|
||||
void OnSize( wxSizeEvent& event );
|
||||
void OnPaint( wxPaintEvent& event );
|
||||
void OnEraseBackground( wxEraseEvent& event );
|
||||
void OnKillFocus( wxFocusEvent& event );
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
#endif /* __NEWBMPBTN_G__ */
|
||||
|
Reference in New Issue
Block a user