~onli/simdock/master

« back to all changes in this revision

Viewing changes to src/launcher_dialog.cc

  • Committer: onli
  • Date: 2011-07-07 12:24:23 UTC
  • Revision ID: git-v1:96c327bf55055eb2a7070d498dbcbf04f309221c
moved sources from unstable-svn-branch to here

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*  
 
2
 *   Copyright 2007 Simone Della Longa <simonedll@yahoo.it>
 
3
 *
 
4
 *  This program is free software; you can redistribute it and/or modify
 
5
 *  it under the terms of the GNU General Public License as published by
 
6
 *  the Free Software Foundation; either version 2 of the License, or
 
7
 *  (at your option) any later version.
 
8
 *
 
9
 *  This program is distributed in the hope that it will be useful,
 
10
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
 *  GNU General Public License for more details.
 
13
 *
 
14
 *  You should have received a copy of the GNU General Public License
 
15
 *  along with this program; if not, write to the Free Software
 
16
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
17
 */
 
18
#include "launcher_dialog.h"
 
19
 
 
20
enum
 
21
{
 
22
ID_bmp_button = 99,
 
23
};
 
24
 
 
25
IMPLEMENT_CLASS(LauncherDialog, wxDialog)
 
26
 
 
27
 
 
28
BEGIN_EVENT_TABLE(LauncherDialog, wxDialog)
 
29
EVT_BUTTON(ID_bmp_button, LauncherDialog::OnBrowseEvent)
 
30
END_EVENT_TABLE()
 
31
 
 
32
wxString LauncherDialog::lastPath = wxString();
 
33
 
 
34
void LauncherDialog::SetIcon(const wxBitmap& value)
 
35
{
 
36
        wxBitmap v;
 
37
        if (value.GetWidth() != 50 || value.GetHeight() != 50)
 
38
        {
 
39
        v = value.ConvertToImage().Scale(50,50);
 
40
        }
 
41
        else
 
42
        v = value;
 
43
 
 
44
        bmp_button->SetBitmapLabel(v);
 
45
}
 
46
 
 
47
bool LauncherDialog::saveChanges()
 
48
{
 
49
if (!bmp_path.IsEmpty() && bmp_path != launcher->img_link)
 
50
{
 
51
        launcher -> img_link  = bmp_path;
 
52
        if (!launcher ->loadImage(bmp_path))
 
53
        {
 
54
              wxMessageBox (_T ("Error! Could not load Image"),
 
55
                    _T ("SimDock"), wxOK | wxICON_INFORMATION, NULL);
 
56
                    
 
57
                return false;   
 
58
                }
 
59
}
 
60
 
 
61
if (!launcher -> img.IsOk())
 
62
{
 
63
      wxMessageBox (_T ("Error! Could not load Background Image!"),
 
64
                    _T ("SimDock"), wxOK | wxICON_INFORMATION, NULL);
 
65
return false;
 
66
}
 
67
 
 
68
launcher->name = name_text->GetValue();
 
69
launcher->descr = description_text->GetValue();
 
70
launcher->link = command_text->GetValue();
 
71
 
 
72
return true;
 
73
 
 
74
 
 
75
}
 
76
 
 
77
LauncherDialog::LauncherDialog(wxWindow* parent, simImage* launcher): wxDialog(parent, -1, _T("Add/Edit Launcher"))
 
78
        {
 
79
        if (!parent || !launcher)
 
80
        {
 
81
        printf ("LauncherDialog::LauncherDialog - NULL argument!\n");
 
82
        return;
 
83
        }
 
84
    this->launcher = launcher;
 
85
    bmp_path = launcher->img_link;
 
86
    
 
87
    wxBoxSizer *topSizer = new wxBoxSizer( wxVERTICAL );
 
88
   
 
89
    wxStaticBoxSizer* LauncherBox = new wxStaticBoxSizer(wxVERTICAL, this, _T("Launcher"));
 
90
    
 
91
    wxBoxSizer* Horizontal0 = new wxBoxSizer( wxHORIZONTAL );
 
92
    
 
93
    bmp_button = new wxBitmapButton(this,ID_bmp_button,NULL,wxDefaultPosition,wxSize(60,60));
 
94
    SetIcon(wxBitmap(launcher->img));
 
95
    Horizontal0->Add(bmp_button,0,5);
 
96
    LauncherBox->Add(Horizontal0, 0, wxGROW|wxALL, 5);
 
97
    
 
98
 //Name
 
99
    wxBoxSizer* Horizontal1 = new wxBoxSizer( wxHORIZONTAL );
 
100
    name_text = new wxTextCtrl(this,-1,launcher->name);
 
101
    Horizontal1->Add(new wxStaticText(this,-1,_T("Name")),wxGROW|wxALL,5);
 
102
    Horizontal1->Add(name_text,wxGROW|wxALL,5);
 
103
    LauncherBox->Add(Horizontal1, 0, wxGROW|wxALL, 5);
 
104
    
 
105
//Command
 
106
    wxBoxSizer* Horizontal2 = new wxBoxSizer( wxHORIZONTAL );
 
107
    command_text = new wxTextCtrl(this,-1,launcher->link,wxDefaultPosition,wxSize(150,wxDefaultSize.GetHeight()));
 
108
    Horizontal2->Add(new wxStaticText(this,-1,_T("Command")),wxGROW|wxALL,5);
 
109
    Horizontal2->Add(command_text,wxGROW|wxALL,5);
 
110
    LauncherBox->Add(Horizontal2, 0, wxGROW|wxALL, 5);
 
111
    
 
112
//Description
 
113
    wxBoxSizer* Horizontal3 = new wxBoxSizer( wxHORIZONTAL );
 
114
    description_text = new wxTextCtrl(this,-1,launcher->descr,wxDefaultPosition,wxSize(150,wxDefaultSize.GetHeight()));
 
115
    Horizontal3->Add(new wxStaticText(this,-1,_T("Description")),wxGROW|wxALL,5);
 
116
    Horizontal3->Add(description_text,wxGROW|wxALL,5);
 
117
    LauncherBox->Add(Horizontal3, 0, wxGROW|wxALL, 5);
 
118
    
 
119
    wxSizer * sz = CreateButtonSizer(wxOK|wxCANCEL);
 
120
    LauncherBox->Add(sz, 0, wxGROW|wxALL, 5);
 
121
 
 
122
    topSizer->Add(LauncherBox, 1, wxGROW|wxALIGN_CENTRE|wxALL, 5 ); 
 
123
    
 
124
    if (launcher->task)
 
125
    {
 
126
        description_text->Enable(false);
 
127
        command_text->Enable(false);
 
128
        name_text->Enable(false);
 
129
        bmp_button->Enable(false);
 
130
    }
 
131
    
 
132
    this->SetSizer(topSizer);
 
133
    topSizer->Fit(this);
 
134
    
 
135
 
 
136
}
 
137
void LauncherDialog::OnBrowseEvent(wxCommandEvent& event)
 
138
{
 
139
        wxString startingPath;
 
140
        if (!bmp_path.IsEmpty())
 
141
                startingPath = bmp_path;
 
142
        else
 
143
                startingPath = lastPath;
 
144
        
 
145
        wxFileName fn(startingPath);
 
146
        
 
147
        wxString filename = wxFileSelector(_T("Choose a file to open"),fn.GetPath() /*wxPathOnly(startingPath)*/, _T(""), _T("png"), wxImage::GetImageExtWildcard(), wxOPEN | wxFILE_MUST_EXIST);
 
148
 
 
149
        if ( !filename.empty() )
 
150
        {
 
151
                bmp_path = filename;
 
152
                SetIcon(wxBitmap(filename));
 
153
                lastPath = filename;
 
154
        }
 
155
 
 
156
 
 
157
}
 
158
 
 
159
LauncherDialog::~LauncherDialog()
 
160
{
 
161
//      delete(panel);
 
162
}