~s-cecilio/lenmus/v5.1.x

« back to all changes in this revision

Viewing changes to src/widgets/Button.h

  • Committer: cecilios
  • Date: 2012-09-08 11:14:25 UTC
  • Revision ID: svn-v4:2587a929-2f0e-0410-ae78-fe6f687d5efe:branches/TRY-5.0:723
fixes for buildable state and delete unused files

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//--------------------------------------------------------------------------------------
2
 
//    LenMus Phonascus: The teacher of music
3
 
//    Copyright (c) 2002-2010 LenMus project
4
 
//
5
 
//    This file is based on file awx/button.h from AWX 0.2 (Additional wxWindow Classes),
6
 
//        downloaded from http://www.iftools.com/awx.en.html
7
 
//
8
 
//    Author:                           Joachim Buermann
9
 
//    Copyright:                        (c) 2003,2004 Joachim Buermann
10
 
//        Original licence:             wxWindows
11
 
//        More info                             $Id: button.h,v 1.3 2004/08/30 10:20:19 jb Exp $
12
 
//
13
 
//
14
 
//    Modified by:
15
 
//        Cecilio Salmeron
16
 
//
17
 
//    This program is free software; you can redistribute it and/or modify it under the
18
 
//    terms of the GNU General Public License as published by the Free Software Foundation,
19
 
//    either version 3 of the License, or (at your option) any later version.
20
 
//
21
 
//    This program is distributed in the hope that it will be useful, but WITHOUT ANY
22
 
//    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
23
 
//    PARTICULAR PURPOSE.  See the GNU General Public License for more details.
24
 
//
25
 
//    You should have received a copy of the GNU General Public License along with this
26
 
//    program. If not, see <http://www.gnu.org/licenses/>.
27
 
//
28
 
//    For any comment, suggestion or feature request, please contact the manager of
29
 
//    the project at cecilios@users.sourceforge.net
30
 
//
31
 
//-------------------------------------------------------------------------------------
32
 
#ifndef __LM_BUTTON_H__
33
 
#define __LM_BUTTON_H__
34
 
 
35
 
//#include <wx/dcmemory.h>
36
 
#include <wx/wx.h>
37
 
 
38
 
enum lmEButtonBorder {
39
 
        lm_eBorderSunken,
40
 
        lm_eBorderFlat,
41
 
        lm_eBorderHigh,
42
 
        lm_eBorderOver,
43
 
};
44
 
 
45
 
class wxBitmap;
46
 
 
47
 
class lmBitmapButton : public wxWindow
48
 
{
49
 
 
50
 
DECLARE_DYNAMIC_CLASS(lmBitmapButton)
51
 
 
52
 
public:
53
 
        lmBitmapButton(wxWindow* parent, wxWindowID id, const wxBitmap& bitmap, 
54
 
                        const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); 
55
 
    lmBitmapButton() {};
56
 
    virtual ~ lmBitmapButton();
57
 
 
58
 
    virtual void Disable();
59
 
    virtual void Enable();
60
 
    virtual bool Enable(bool enable) {
61
 
           if(enable) Enable();
62
 
           else Disable();
63
 
           return true;
64
 
    };
65
 
    virtual bool IsPressed() {return m_state == lm_eButtonDown;};
66
 
    bool IsEnabled() {return m_enabled;};
67
 
    virtual void OnPaint(wxPaintEvent &event);
68
 
    virtual void OnEraseBackground(wxEraseEvent &event);
69
 
    virtual void OnMouseEvent(wxMouseEvent& event);
70
 
    virtual void OnSizeEvent(wxSizeEvent& event);
71
 
    virtual bool Press();
72
 
    virtual bool Release();
73
 
    virtual void SetText(const wxChar* text);
74
 
        virtual void SetBorderDown(lmEButtonBorder nBorderType) { m_nBorderDown = nBorderType; }
75
 
        virtual void SetBorderOver(lmEButtonBorder nBorderType) { m_nBorderOver = nBorderType; }
76
 
 
77
 
        virtual void SetBitmapDown(const wxBitmap& bitmap);
78
 
        virtual void SetBitmapOver(const wxBitmap& bitmap);
79
 
 
80
 
    virtual void SetBitmapUp(wxString sBmpName, wxString sBg, wxSize size);
81
 
    virtual void SetBitmapDown(wxString sBmpName, wxString sBg, wxSize size);
82
 
    virtual void SetBitmapOver(wxString sBmpName, wxString sBg, wxSize size);
83
 
    virtual void SetBitmapDisabled(wxString sBmpName, wxString sBg, wxSize size);
84
 
 
85
 
 
86
 
protected:
87
 
    enum lmEButtonState
88
 
    {
89
 
           lm_eButtonUp = 0,
90
 
           lm_eButtonOver,
91
 
           lm_eButtonDown,
92
 
           lm_eButtonDis,
93
 
           lm_eButtonNew
94
 
    };
95
 
 
96
 
    wxBitmap CreateBitmap(wxString sBmpName, wxString sBg, wxSize size);
97
 
 
98
 
        void Create(const wxPoint& pos, const wxSize& size);
99
 
    void Redraw();
100
 
 
101
 
    wxString    m_sNameUp;
102
 
    wxString    m_sNameDis;
103
 
    wxSize      m_btSize;
104
 
    int             m_dx;
105
 
    int             m_dy;
106
 
 
107
 
    bool        m_enabled;
108
 
 
109
 
    lmEButtonState              m_state;
110
 
    lmEButtonState              m_laststate;
111
 
    wxBitmap*               m_bitmap;
112
 
 
113
 
    wxString    m_text;
114
 
    wxFont*             m_font;
115
 
        wxBitmap        m_bitmaps[4];
116
 
 
117
 
        lmEButtonBorder         m_nBorderDown;
118
 
        lmEButtonBorder         m_nBorderOver;
119
 
 
120
 
 
121
 
    DECLARE_EVENT_TABLE()
122
 
};
123
 
 
124
 
class lmCheckButton : public lmBitmapButton
125
 
{
126
 
public:
127
 
        lmCheckButton(wxWindow* parent, wxWindowID id, const wxBitmap& bitmap, 
128
 
                                  const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
129
 
 
130
 
        virtual void OnMouseEvent(wxMouseEvent& event);
131
 
    virtual bool Press();
132
 
    virtual bool Release();
133
 
 
134
 
protected:
135
 
    bool m_fButtonDown;
136
 
 
137
 
        
138
 
        DECLARE_EVENT_TABLE()
139
 
};
140
 
 
141
 
 
142
 
#endif          // __LM_BUTTON_H__