iconAsXPMData.C: A simple example of creating icon image from XPM data, | Graphics User Interface | mditest.C: GUI MDI features |
// // Author: Ilka Antcheva 1/12/2006 // This macro gives an example of how to create a list box // and how to set and use its multiple selection feature. // To run it do either: // .x listBox.C // .x listBox.C++ #include <TApplication.h> #include <TGClient.h> #include <TGButton.h> #include <TGListBox.h> #include <TList.h> class MyMainFrame : public TGMainFrame { private: TGListBox *fListBox; TGCheckButton *fCheckMulti; TList *fSelected; public: MyMainFrame(const TGWindow *p, UInt_t w, UInt_t h); virtual ~MyMainFrame(); void DoExit(); void DoSelect(); void HandleButtons(); void PrintSelected(); ClassDef(MyMainFrame, 0) }; void MyMainFrame::DoSelect() { Printf("Slot DoSelect()"); } void MyMainFrame::DoExit() { Printf("Slot DoExit()"); gApplication->Terminate(0); } MyMainFrame::MyMainFrame(const TGWindow *p, UInt_t w, UInt_t h) : TGMainFrame(p, w, h) { // Create main frame fListBox = new TGListBox(this, 89); fSelected = new TList; char tmp[20]; for (int i = 0; i < 20; ++i) { sprintf(tmp, "Entry %i", i+1); fListBox->AddEntry(tmp, i+1); } fListBox->Resize(100,150); AddFrame(fListBox, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 5, 5, 5, 5)); fCheckMulti = new TGCheckButton(this, "&Mutliple selection", 10); AddFrame(fCheckMulti, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5)); fCheckMulti->Connect("Clicked()", "MyMainFrame", this, "HandleButtons()"); // Create a horizontal frame containing button(s) TGHorizontalFrame *hframe = new TGHorizontalFrame(this, 150, 20, kFixedWidth); TGTextButton *show = new TGTextButton(hframe, "&Show"); show->SetToolTipText("Click here to print the selection you made"); show->Connect("Pressed()", "MyMainFrame", this, "PrintSelected()"); hframe->AddFrame(show, new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 4)); TGTextButton *exit = new TGTextButton(hframe, "&Exit "); exit->Connect("Pressed()", "MyMainFrame", this, "DoExit()"); hframe->AddFrame(exit, new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 4)); AddFrame(hframe, new TGLayoutHints(kLHintsExpandX, 2, 2, 5, 1)); // Set a name to the main frame SetWindowName("List Box"); MapSubwindows(); // Initialize the layout algorithm via Resize() Resize(GetDefaultSize()); // Map main frame MapWindow(); fListBox->Select(1); } MyMainFrame::~MyMainFrame() { // Clean up main frame... Cleanup(); if (fSelected) { fSelected->Delete(); delete fSelected; } } void MyMainFrame::HandleButtons() { // Handle check button. Int_t id; TGButton *btn = (TGButton *) gTQSender; id = btn->WidgetId(); printf("HandleButton: id = %d\n", id); if (id == 10) fListBox->SetMultipleSelections(fCheckMulti->GetState()); } void MyMainFrame::PrintSelected() { // Writes selected entries in TList if multiselection. fSelected->Clear(); if (fListBox->GetMultipleSelections()) { Printf("Selected entries are:\n"); fListBox->GetSelectedEntries(fSelected); fSelected->ls(); } else { Printf("Selected entries is: %d\n", fListBox->GetSelected()); } } void listBox() { // Popup the GUI... new MyMainFrame(gClient->GetRoot(), 200, 200); } listBox.C:1 listBox.C:2 listBox.C:3 listBox.C:4 listBox.C:5 listBox.C:6 listBox.C:7 listBox.C:8 listBox.C:9 listBox.C:10 listBox.C:11 listBox.C:12 listBox.C:13 listBox.C:14 listBox.C:15 listBox.C:16 listBox.C:17 listBox.C:18 listBox.C:19 listBox.C:20 listBox.C:21 listBox.C:22 listBox.C:23 listBox.C:24 listBox.C:25 listBox.C:26 listBox.C:27 listBox.C:28 listBox.C:29 listBox.C:30 listBox.C:31 listBox.C:32 listBox.C:33 listBox.C:34 listBox.C:35 listBox.C:36 listBox.C:37 listBox.C:38 listBox.C:39 listBox.C:40 listBox.C:41 listBox.C:42 listBox.C:43 listBox.C:44 listBox.C:45 listBox.C:46 listBox.C:47 listBox.C:48 listBox.C:49 listBox.C:50 listBox.C:51 listBox.C:52 listBox.C:53 listBox.C:54 listBox.C:55 listBox.C:56 listBox.C:57 listBox.C:58 listBox.C:59 listBox.C:60 listBox.C:61 listBox.C:62 listBox.C:63 listBox.C:64 listBox.C:65 listBox.C:66 listBox.C:67 listBox.C:68 listBox.C:69 listBox.C:70 listBox.C:71 listBox.C:72 listBox.C:73 listBox.C:74 listBox.C:75 listBox.C:76 listBox.C:77 listBox.C:78 listBox.C:79 listBox.C:80 listBox.C:81 listBox.C:82 listBox.C:83 listBox.C:84 listBox.C:85 listBox.C:86 listBox.C:87 listBox.C:88 listBox.C:89 listBox.C:90 listBox.C:91 listBox.C:92 listBox.C:93 listBox.C:94 listBox.C:95 listBox.C:96 listBox.C:97 listBox.C:98 listBox.C:99 listBox.C:100 listBox.C:101 listBox.C:102 listBox.C:103 listBox.C:104 listBox.C:105 listBox.C:106 listBox.C:107 listBox.C:108 listBox.C:109 listBox.C:110 listBox.C:111 listBox.C:112 listBox.C:113 listBox.C:114 listBox.C:115 listBox.C:116 listBox.C:117 listBox.C:118 listBox.C:119 listBox.C:120 listBox.C:121 listBox.C:122 listBox.C:123 listBox.C:124 listBox.C:125 listBox.C:126 listBox.C:127 listBox.C:128 listBox.C:129 listBox.C:130 listBox.C:131 listBox.C:132 listBox.C:133 |
|