1 /*****************************************************************************/
2 // ActiveTranslatorsWindow
3 // Written by Michael Wilber, OBOS Translation Kit Team
5 // ActiveTranslatorsWindow.cpp
7 // BWindow class for displaying information about the currently open
11 // Copyright (c) 2003 OpenBeOS Project
13 // Permission is hereby granted, free of charge, to any person obtaining a
14 // copy of this software and associated documentation files (the "Software"),
15 // to deal in the Software without restriction, including without limitation
16 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
17 // and/or sell copies of the Software, and to permit persons to whom the
18 // Software is furnished to do so, subject to the following conditions:
20 // The above copyright notice and this permission notice shall be included
21 // in all copies or substantial portions of the Software.
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29 // DEALINGS IN THE SOFTWARE.
30 /*****************************************************************************/
32 #include "Constants.h"
33 #include "ActiveTranslatorsWindow.h"
34 #include "TranslatorItem.h"
35 #include <Application.h>
37 #include <ScrollView.h>
47 #undef B_TRANSLATION_CONTEXT
48 #define B_TRANSLATION_CONTEXT "ActiveTranslatorsWindow"
51 ActiveTranslatorsWindow::ActiveTranslatorsWindow(BRect rect
, const char *name
,
53 : BWindow(rect
, name
, B_TITLED_WINDOW
, B_NOT_RESIZABLE
| B_NOT_ZOOMABLE
)
55 BRect rctframe
= Bounds();
56 rctframe
.right
-= B_V_SCROLL_BAR_WIDTH
;
58 fpListView
= new BOutlineListView(rctframe
, "translators_list",
59 B_MULTIPLE_SELECTION_LIST
);
61 fpListView
->AddItem(fpUserItem
= new BStringItem(B_TRANSLATE("User Translators")));
62 fpUserItem
->SetEnabled(false);
63 fpListView
->AddItem(fpSystemItem
= new BStringItem(B_TRANSLATE("System Translators")));
64 fpSystemItem
->SetEnabled(false);
65 AddTranslatorsToList(plist
, USER_TRANSLATOR
, fpUserItem
);
66 AddTranslatorsToList(plist
, SYSTEM_TRANSLATOR
, fpSystemItem
);
68 AddChild(new BScrollView("scroll_list", fpListView
, B_FOLLOW_LEFT
| B_FOLLOW_TOP
,
71 SetSizeLimits(100, 10000, 100, 10000);
77 ActiveTranslatorsWindow::AddTranslatorsToList(BList
*plist
, int32 group
,
80 BTranslatorItem
*pitem
;
81 for (int32 i
= 0; i
< plist
->CountItems(); i
++) {
82 pitem
= static_cast<BTranslatorItem
*>(plist
->ItemAt(i
));
83 if (pitem
->Group() == group
)
84 fpListView
->AddUnder(pitem
, pparent
);
88 ActiveTranslatorsWindow::~ActiveTranslatorsWindow()
93 ActiveTranslatorsWindow::FrameResized(float width
, float height
)
98 ActiveTranslatorsWindow::MessageReceived(BMessage
*pmsg
)
100 switch (pmsg
->what
) {
102 BWindow::MessageReceived(pmsg
);
108 ActiveTranslatorsWindow::Quit()
110 // tell the app to forget about this window
111 be_app
->PostMessage(M_ACTIVE_TRANSLATORS_WINDOW_QUIT
);