File: combocompo.cc

package info (click to toggle)
vdk2 2.0.1-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 3,616 kB
  • ctags: 4,174
  • sloc: cpp: 25,357; sh: 8,955; ansic: 5,275; makefile: 577; perl: 113
file content (116 lines) | stat: -rw-r--r-- 3,490 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/*
 * ===========================
 * VDK Visual Develeopment Kit
 * Version 2.0.0
 * february 2001
 * ===========================
 *
 * Copyright (C) 1998, Mario Motta
 * Developed by Mario Motta <mmotta@guest.net>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 */
#include "combocompo.h"
 
/*   
signals map   
*/ 
DEFINE_SIGNAL_MAP(ComboComponent,VDKEventBox)
ON_SIGNAL(combobox,selection_changed_signal,OnComboChange),
ON_SIGNAL(arrows,toggled_signal,OnArrowToggle),
ON_SIGNAL(buttonclear,clicked_signal,OnClearClick),
ON_SIGNAL(buttonadd,clicked_signal,OnAddClick)
END_SIGNAL_MAP 

/*
set up main form
 */
void ComboComponent::Setup()
{
   Usize = VDKPoint(250,150);
   VDKBox *frame = new VDKBox(Owner(),v_box);  
   Add(frame,l_justify,false,false,10);
   VDKBox *vbox;
   frame->Add(vbox = new VDKBox(Owner(),v_box));
   vbox->Add(combobox = new VDKCombo(Owner()));
   VDKBox *hbox = new VDKBox(Owner(),h_box);
   label = new VDKLabel(Owner(),"Current selection:",GTK_JUSTIFY_LEFT);
   hbox->Add(label);
   label2 = new VDKLabel(Owner(),"",GTK_JUSTIFY_LEFT);
   hbox->Add(label2);
   vbox->Add(hbox);
   VDKBox *hbox2 = new VDKBox(Owner(),h_box);
   VDKFrame *arrowframe = new VDKFrame(Owner(),"Arrow Keys",v_box,shadow_etched_in);
   arrows = new VDKRadioButtonGroup(Owner());
   arrows_on = new VDKRadioButton(arrows,"enabled");
   arrows_off = new VDKRadioButton(arrows,"disabled");
   arrowframe->Add(arrows);
   hbox2->Add(arrowframe);
   VDKFrame *buttonframe = new VDKFrame(Owner(),"List",v_box,shadow_etched_in);
   VDKBox *vbox2 = new VDKBox(Owner(),v_box);
   buttonclear = new VDKCustomButton(Owner(),"Clear");
   buttonadd = new VDKCustomButton(Owner(),"Add 5 lines");
   vbox2->Add(buttonclear);
   vbox2->Add(buttonadd);
   buttonframe->Add(vbox2);
   hbox2->Add(buttonframe);
   vbox->Add(hbox2);
   StringList sl;
   VDKString s("this");
   sl.add(s);
   s = "is"; sl.add(s);
   s = "a"; sl.add(s);
   s = "test,"; sl.add(s);
   s = "dude !"; sl.add(s);
   combobox->SetPopdownStrings(sl);
}  

bool ComboComponent::OnComboChange(VDKObject *)
{
    int sel = combobox->Selected;
    VDKString defaultText = "None";
    label2->Caption = (sel == -1) 
	  ? (char*) defaultText
	  : (char*) (combobox->GetPopdownStrings())[sel]; 
    return true;
}

bool ComboComponent::OnArrowToggle(VDKObject*)
{
    combobox->UseArrows(arrows->GetSelected() == 0);
    return true;
}

bool ComboComponent::OnClearClick(VDKObject*)
{
    combobox->ClearList();
    return true;
}

bool ComboComponent::OnAddClick(VDKObject*)
{
    StringList temp = combobox->PopdownStrings;
    char buffer[15];
    for (int i=0; i<5; i++) {
        sprintf(buffer, "Added line %d",i+1);
        VDKString s(buffer);
        temp.add(s);
    }
    combobox->PopdownStrings = temp;
    return true;
}