const char * Model::Name() const { static const char* kRootNodeName = B_TRANSLATE_MARK("Disks"); static const char* kTrashNodeName = B_TRANSLATE_MARK("Trash"); static const char* kDesktopNodeName = B_TRANSLATE_MARK("Desktop"); switch (fBaseType) { case kRootNode: return B_TRANSLATE_NOCOLLECT(kRootNodeName); case kVolumeNode: if (fVolumeName) return fVolumeName; break; case kTrashNode: return B_TRANSLATE_NOCOLLECT(kTrashNodeName); case kDesktopNode: return B_TRANSLATE_NOCOLLECT(kDesktopNodeName); default: break; } if (fHasLocalizedName && gLocalizedNamePreferred) return fLocalizedName.String(); else return fEntryRef.name; }
SMTPConfigView::SMTPConfigView(MailAddonSettings& settings, BMailAccountSettings& accountSettings) : BMailProtocolConfigView(B_MAIL_PROTOCOL_HAS_AUTH_METHODS | B_MAIL_PROTOCOL_HAS_USERNAME | B_MAIL_PROTOCOL_HAS_PASSWORD | B_MAIL_PROTOCOL_HAS_HOSTNAME #ifdef USE_SSL | B_MAIL_PROTOCOL_HAS_FLAVORS #endif ) { #if defined(USE_SSL) || defined(B_COLLECTING_CATKEYS) static const char* kUnencryptedStr = B_TRANSLATE_MARK("Unencrypted"); static const char* kSSLStr = B_TRANSLATE_MARK("SSL"); static const char* kSTARTTLSStr = B_TRANSLATE_MARK("STARTTLS"); #endif #ifdef USE_SSL AddFlavor(B_TRANSLATE_NOCOLLECT(kUnencryptedStr)); AddFlavor(B_TRANSLATE(kSSLStr)); AddFlavor(B_TRANSLATE(kSTARTTLSStr)); #endif AddAuthMethod(B_TRANSLATE("None"), false); AddAuthMethod(B_TRANSLATE("ESMTP")); AddAuthMethod(B_TRANSLATE("POP3 before SMTP"), false); BTextControl *control = (BTextControl *)(FindView("host")); control->SetLabel(B_TRANSLATE("SMTP server:")); // Reset the dividers after changing one float widestLabel = 0; for (int32 i = CountChildren(); i-- > 0;) { if (BTextControl *text = dynamic_cast<BTextControl *>(ChildAt(i))) widestLabel = MAX(widestLabel,text->StringWidth(text->Label()) + 5); } for (int32 i = CountChildren(); i-- > 0;) { if (BTextControl *text = dynamic_cast<BTextControl *>(ChildAt(i))) text->SetDivider(widestLabel); } BMenuField *field = (BMenuField *)(FindView("auth_method")); field->SetDivider(widestLabel); SetTo(settings); fFileView = new BMailFileConfigView(B_TRANSLATE("Destination:"), "path", false, BPrivate::default_mail_out_directory().Path()); fFileView->SetTo(&settings.Settings(), NULL); AddChild(fFileView); float w, h; BMailProtocolConfigView::GetPreferredSize(&w, &h); fFileView->MoveBy(0, h - 10); GetPreferredSize(&w, &h); ResizeTo(w, h); }
const char* string_for_rate(double rate, char* string, size_t stringSize) { double kib = rate / 1024.0; if (kib < 1.0) { BString tmp; BStringFormat format( gSystemCatalog.GetString(B_TRANSLATE_MARK( "{0, plural, one{# byte/s} other{# bytes/s}}"), B_TRANSLATION_CONTEXT, "bytes per second")); format.Format(tmp, (int)rate); strlcpy(string, tmp.String(), stringSize); return string; } double mib = kib / 1024.0; if (mib < 1.0) { const char* trKey = B_TRANSLATE_MARK("%3.2f KiB/s"); snprintf(string, stringSize, gSystemCatalog.GetString(trKey, B_TRANSLATION_CONTEXT, "KiB per second"), kib); return string; } double gib = mib / 1024.0; if (gib < 1.0) { const char* trKey = B_TRANSLATE_MARK("%3.2f MiB/s"); snprintf(string, stringSize, gSystemCatalog.GetString(trKey, B_TRANSLATION_CONTEXT, "MiB per second"), mib); return string; } double tib = gib / 1024.0; if (tib < 1.0) { const char* trKey = B_TRANSLATE_MARK("%3.2f GiB/s"); snprintf(string, stringSize, gSystemCatalog.GetString(trKey, B_TRANSLATION_CONTEXT, "GiB per second"), gib); return string; } const char* trKey = B_TRANSLATE_MARK("%.2f TiB/s"); snprintf(string, stringSize, gSystemCatalog.GetString(trKey, B_TRANSLATION_CONTEXT, "TiB per second"), tib); return string; }
NotificationWindow::NotificationWindow() : BWindow(BRect(0, 0, -1, -1), B_TRANSLATE_MARK("Notification"), B_BORDERED_WINDOW_LOOK, B_FLOATING_ALL_WINDOW_FEEL, B_AVOID_FRONT | B_AVOID_FOCUS | B_NOT_CLOSABLE | B_NOT_ZOOMABLE | B_NOT_MINIMIZABLE | B_NOT_RESIZABLE | B_NOT_MOVABLE | B_AUTO_UPDATE_SIZE_LIMITS, B_ALL_WORKSPACES) { SetLayout(new BGroupLayout(B_VERTICAL, 0)); _LoadSettings(true); // Start the message loop Hide(); Show(); }
NotificationWindow::NotificationWindow() : BWindow(BRect(10, 10, 30, 30), B_TRANSLATE_MARK("Notification"), B_BORDERED_WINDOW, B_AVOID_FRONT | B_AVOID_FOCUS | B_NOT_CLOSABLE | B_NOT_ZOOMABLE | B_NOT_MINIMIZABLE | B_NOT_RESIZABLE, B_ALL_WORKSPACES) { fBorder = new BorderView(Bounds(), "Notification"); AddChild(fBorder); Show(); Hide(); LoadSettings(true); LoadAppFilters(true); }
NotificationWindow::NotificationWindow() : BWindow(BRect(0, 0, -1, -1), B_TRANSLATE_MARK("Notification"), B_BORDERED_WINDOW_LOOK, B_FLOATING_ALL_WINDOW_FEEL, B_AVOID_FRONT | B_AVOID_FOCUS | B_NOT_CLOSABLE | B_NOT_ZOOMABLE | B_NOT_MINIMIZABLE | B_NOT_RESIZABLE | B_NOT_MOVABLE | B_AUTO_UPDATE_SIZE_LIMITS, B_ALL_WORKSPACES), fShouldRun(true) { status_t result = find_directory(B_USER_CACHE_DIRECTORY, &fCachePath); fCachePath.Append("Notifications"); BDirectory cacheDir; result = cacheDir.SetTo(fCachePath.Path()); if (result == B_ENTRY_NOT_FOUND) cacheDir.CreateDirectory(fCachePath.Path(), NULL); SetLayout(new BGroupLayout(B_VERTICAL, 0)); _LoadSettings(true); // Start the message loop Hide(); Show(); }
#include <TextView.h> #include "APRWindow.h" #undef B_TRANSLATE_CONTEXT #define B_TRANSLATE_CONTEXT "AntialiasingSettingsView" //#define DISABLE_HINTING_CONTROL // if defined, the hinting menu is disabled (hinting not properly // implemented) static const int32 kMsgSetAntialiasing = 'anti'; static const int32 kMsgSetHinting = 'hint'; static const int32 kMsgSetAverageWeight = 'avrg'; static const char* kSubpixelLabel = B_TRANSLATE_MARK("LCD subpixel"); static const char* kGrayscaleLabel = B_TRANSLATE_MARK("Grayscale"); static const char* kNoHintingLabel = B_TRANSLATE_MARK("Off"); static const char* kMonospacedHintingLabel = B_TRANSLATE_MARK("Monospaced fonts only"); static const char* kFullHintingLabel = B_TRANSLATE_MARK("On"); // #pragma mark - private libbe API enum { HINTING_MODE_OFF = 0, HINTING_MODE_ON, HINTING_MODE_MONOSPACED_ONLY };
void ExpanderWindow::MessageReceived(BMessage* msg) { switch (msg->what) { case MSG_SOURCE: { BEntry entry(fSourceText->Text(), true); entry_ref srcRef; if (entry.Exists() && entry.IsDirectory()) entry.GetRef(&srcRef); if (!fSourcePanel) { BMessenger messenger(this); fSourcePanel = new BFilePanel(B_OPEN_PANEL, &messenger, &srcRef, B_FILE_NODE, false, NULL, new RuleRefFilter(fRules), true); (fSourcePanel->Window())->SetTitle( B_TRANSLATE("Expander: Open")); } else fSourcePanel->SetPanelDirectory(&srcRef); fSourcePanel->Show(); break; } case MSG_DEST: { BEntry entry(fDestText->Text(), true); entry_ref destRef; if (entry.Exists() && entry.IsDirectory()) entry.GetRef(&destRef); if (!fDestPanel) { BMessenger messenger(this); fDestPanel = new DirectoryFilePanel(B_OPEN_PANEL, &messenger, &destRef, B_DIRECTORY_NODE, false, NULL, new DirectoryRefFilter(), true); } else fDestPanel->SetPanelDirectory(&destRef); fDestPanel->Show(); break; } case MSG_DIRECTORY: { entry_ref ref; fDestPanel->GetPanelDirectory(&ref); fDestRef = ref; BEntry entry(&ref); BPath path(&entry); fDestText->SetText(path.Path()); fDestPanel->Hide(); break; } case B_SIMPLE_DATA: case B_REFS_RECEIVED: RefsReceived(msg); break; case MSG_EXPAND: if (!ValidateDest()) break; if (!fExpandingStarted) { StartExpanding(); break; } // supposed to fall through case MSG_STOP: if (fExpandingStarted) { fExpandingThread->SuspendExternalExpander(); BAlert* alert = new BAlert("stopAlert", B_TRANSLATE("Are you sure you want to stop expanding this\n" "archive? The expanded items may not be complete."), B_TRANSLATE("Stop"), B_TRANSLATE("Continue"), NULL, B_WIDTH_AS_USUAL, B_EVEN_SPACING, B_WARNING_ALERT); if (alert->Go() == 0) { fExpandingThread->ResumeExternalExpander(); StopExpanding(); } else fExpandingThread->ResumeExternalExpander(); } break; case MSG_SHOW: fShowContents->SetValue(fShowContents->Value() == B_CONTROL_OFF ? B_CONTROL_ON : B_CONTROL_OFF); // supposed to fall through case MSG_SHOWCONTENTS: // change menu item label fShowItem->SetLabel(fShowContents->Value() == B_CONTROL_OFF ? B_TRANSLATE("Show contents") : B_TRANSLATE("Hide contents")); if (fShowContents->Value() == B_CONTROL_OFF) { if (fListingStarted) StopListing(); _UpdateWindowSize(false); } else StartListing(); break; case MSG_SOURCETEXT: { BEntry entry(fSourceText->Text(), true); if (!entry.Exists()) { BAlert* alert = new BAlert("srcAlert", B_TRANSLATE("The file doesn't exist"), B_TRANSLATE("Cancel"), NULL, NULL, B_WIDTH_AS_USUAL, B_EVEN_SPACING, B_WARNING_ALERT); alert->Go(); break; } entry_ref ref; entry.GetRef(&ref); ExpanderRule* rule = fRules.MatchingRule(&ref); if (rule) { fSourceChanged = true; fSourceRef = ref; fShowContents->SetEnabled(true); fExpandButton->SetEnabled(true); fExpandItem->SetEnabled(true); fShowItem->SetEnabled(true); break; } BString string = "The file : "; string += fSourceText->Text(); string += B_TRANSLATE_MARK(" is not supported"); BAlert* alert = new BAlert("srcAlert", string.String(), B_TRANSLATE("Cancel"), NULL, NULL, B_WIDTH_AS_USUAL, B_EVEN_SPACING, B_INFO_ALERT); alert->Go(); fShowContents->SetEnabled(false); fExpandButton->SetEnabled(false); fExpandItem->SetEnabled(false); fShowItem->SetEnabled(false); } break; case MSG_DESTTEXT: ValidateDest(); break; case MSG_PREFERENCES: if (!fPreferences) fPreferences = new ExpanderPreferences(&fSettings); fPreferences->Show(); break; case 'outp': if (!fExpandingStarted && fListingStarted) { BString string; int32 i = 0; while (msg->FindString("output", i++, &string) == B_OK) { float length = fListingText->StringWidth(string.String()); if (length > fLongestLine) fLongestLine = length; fListingText->Insert(string.String()); } fListingText->ScrollToSelection(); } else if (fExpandingStarted) { BString string; int32 i = 0; while (msg->FindString("output", i++, &string) == B_OK) { if (strstr(string.String(), "Enter password") != NULL) { fExpandingThread->SuspendExternalExpander(); BString password; PasswordAlert* alert = new PasswordAlert("passwordAlert", string); alert->Go(password); fExpandingThread->ResumeExternalExpander(); fExpandingThread->PushInput(password); } } } break; case 'errp': { BString string; if (msg->FindString("error", &string) == B_OK && fExpandingStarted) { fExpandingThread->SuspendExternalExpander(); if (strstr(string.String(), "password") != NULL) { BString password; PasswordAlert* alert = new PasswordAlert("passwordAlert", string); alert->Go(password); fExpandingThread->ResumeExternalExpander(); fExpandingThread->PushInput(password); } else { BAlert* alert = new BAlert("stopAlert", string, B_TRANSLATE("Stop"), B_TRANSLATE("Continue"), NULL, B_WIDTH_AS_USUAL, B_EVEN_SPACING, B_WARNING_ALERT); if (alert->Go() == 0) { fExpandingThread->ResumeExternalExpander(); StopExpanding(); } else fExpandingThread->ResumeExternalExpander(); } } break; } case 'exit': // thread has finished (finished, quit, killed, we don't know) // reset window state if (fExpandingStarted) { fStatusView->SetText(B_TRANSLATE("File expanded")); StopExpanding(); OpenDestFolder(); CloseWindowOrKeepOpen(); } else if (fListingStarted) { fSourceChanged = false; StopListing(); _ExpandListingText(); } else fStatusView->SetText(""); break; case 'exrr': // thread has finished // reset window state fStatusView->SetText(B_TRANSLATE("Error when expanding archive")); CloseWindowOrKeepOpen(); break; default: BWindow::MessageReceived(msg); break; } }
#include "ConfigView.h" #include "RAWTranslator.h" #include <Catalog.h> #include <CheckBox.h> #include <LayoutBuilder.h> #include <StringView.h> #include <stdio.h> #include <string.h> #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "ConfigView" const char* kShortName2 = B_TRANSLATE_MARK("RAWTranslator Settings"); ConfigView::ConfigView(uint32 flags) : BView(kShortName2, flags) { SetViewUIColor(B_PANEL_BACKGROUND_COLOR); BStringView *fTitle = new BStringView("title", B_TRANSLATE("RAW image translator")); fTitle->SetFont(be_bold_font); char version[256]; sprintf(version, B_TRANSLATE("Version %d.%d.%d, %s"), int(B_TRANSLATION_MAJOR_VERSION(RAW_TRANSLATOR_VERSION)), int(B_TRANSLATION_MINOR_VERSION(RAW_TRANSLATOR_VERSION)), int(B_TRANSLATION_REVISION_VERSION(RAW_TRANSLATOR_VERSION)),
B_TRANSLATE("Input device controller"), // 0x09 B_TRANSLATE("Docking station"), // 0x0a B_TRANSLATE("Processor"), // 0x0b B_TRANSLATE("Serial bus controller"), // 0x0c B_TRANSLATE("Wireless controller"), // 0x0d B_TRANSLATE("Intelligent controller"), // 0x0e B_TRANSLATE("Satellite communications controller"), // 0x0f B_TRANSLATE("Encryption controller"), // 0x10 B_TRANSLATE("Signal processing controller"), // 0x11 B_TRANSLATE("Computer"), // 0x12 (added later) B_TRANSLATE("ACPI controller") // 0x13 (added later) }; // This list is only used to translate Device properties static const char* kTranslateMarkString[] = { B_TRANSLATE_MARK("unknown"), B_TRANSLATE_MARK("Device"), B_TRANSLATE_MARK("Computer"), B_TRANSLATE_MARK("ACPI bus"), B_TRANSLATE_MARK("PCI bus"), B_TRANSLATE_MARK("ISA bus"), B_TRANSLATE_MARK("Unknown device") }; Device::Device(Device* physicalParent, BusType busType, Category category, const BString& name, const BString& manufacturer, const BString& driverUsed, const BString& devPathsPublished) : BStringItem(name.String()), fBusType(busType),
double angle = i * M_PI / 180; BPoint pt(size * cos(angle), size * sin(angle)); AddLine(center, center + pt, black); } EndLineArray(); } // #pragma mark - static const struct { const char* name; rgb_color color; } kColorGradients[] = { { B_TRANSLATE_MARK("Red"), {255, 0, 0, 255} }, { B_TRANSLATE_MARK("Green"), {0, 255, 0, 255} }, { B_TRANSLATE_MARK("Blue"), {0, 0, 255, 255} }, { B_TRANSLATE_MARK("Yellow"), {255, 255, 0, 255} }, { B_TRANSLATE_MARK("Magenta"), {255, 0, 255, 255} }, { B_TRANSLATE_MARK("Cyan"), {0, 255, 255, 255} }, { B_TRANSLATE_MARK("Black"), {0, 0, 0, 255} } }; static const int kNumColorGradients = sizeof(kColorGradients) / sizeof(kColorGradients[0]); class ColorGradientView : public BView { public: ColorGradientView(rgb_color color); virtual void Draw(BRect updateRect);
status_t thread_popup(void *arg) { Tpopup_param* param = (Tpopup_param*) arg; int32 mcookie, hcookie; unsigned long m; long h; BMenuItem* item; bool top = param->top; system_info systemInfo; get_system_info(&systemInfo); info_pack* infos = new info_pack[systemInfo.used_teams]; // TODO: this doesn't necessarily get all teams for (m = 0, mcookie = 0; m < systemInfo.used_teams; m++) { infos[m].team_icon = NULL; infos[m].team_name[0] = 0; infos[m].thread_info = NULL; if (get_next_team_info(&mcookie, &infos[m].team_info) == B_OK) { infos[m].thread_info = new thread_info[infos[m].team_info.thread_count]; for (h = 0, hcookie = 0; h < infos[m].team_info.thread_count; h++) { if (get_next_thread_info(infos[m].team_info.team, &hcookie, &infos[m].thread_info[h]) != B_OK) infos[m].thread_info[h].thread = -1; } get_team_name_and_icon(infos[m], true); } else { systemInfo.used_teams = m; infos[m].team_info.team = -1; } } BPopUpMenu* popup = new BPopUpMenu("Global Popup", false, false); popup->SetFont(be_plain_font); // Quit section BMenu* QuitPopup = new QuitMenu(B_TRANSLATE("Quit an application"), infos, systemInfo.used_teams); QuitPopup->SetFont(be_plain_font); popup->AddItem(QuitPopup); // Memory Usage section MemoryBarMenu* MemoryPopup = new MemoryBarMenu(B_TRANSLATE("Memory usage"), infos, systemInfo); int64 committedMemory = (int64)systemInfo.used_pages * B_PAGE_SIZE / 1024; for (m = 0; m < systemInfo.used_teams; m++) { if (infos[m].team_info.team >= 0) { MemoryBarMenuItem* memoryItem = new MemoryBarMenuItem(infos[m].team_name, infos[m].team_info.team, infos[m].team_icon, false, NULL); MemoryPopup->AddItem(memoryItem); memoryItem->UpdateSituation(committedMemory); } } addtopbottom(MemoryPopup); // CPU Load section TeamBarMenu* CPUPopup = new TeamBarMenu(B_TRANSLATE("Threads and CPU " "usage"), infos, systemInfo.used_teams); for (m = 0; m < systemInfo.used_teams; m++) { if (infos[m].team_info.team >= 0) { ThreadBarMenu* TeamPopup = new ThreadBarMenu(infos[m].team_name, infos[m].team_info.team, infos[m].team_info.thread_count); BMessage* kill_team = new BMessage('KlTm'); kill_team->AddInt32("team", infos[m].team_info.team); TeamBarMenuItem* item = new TeamBarMenuItem(TeamPopup, kill_team, infos[m].team_info.team, infos[m].team_icon, false); item->SetTarget(gPCView); CPUPopup->AddItem(item); } } addtopbottom(CPUPopup); addtopbottom(new BSeparatorItem()); // CPU on/off section if (gCPUcount > 1) { for (unsigned int i = 0; i < gCPUcount; i++) { char item_name[32]; sprintf (item_name, B_TRANSLATE("Processor %d"), i + 1); BMessage* m = new BMessage ('CPU '); m->AddInt32 ("cpu", i); item = new IconMenuItem (gPCView->fProcessorIcon, item_name, m); if (_kern_cpu_enabled(i)) item->SetMarked (true); item->SetTarget(gPCView); addtopbottom(item); } addtopbottom (new BSeparatorItem ()); } // Scheduler modes static const char* schedulerModes[] = { B_TRANSLATE_MARK("Low latency"), B_TRANSLATE_MARK("Power saving") }; unsigned int modesCount = sizeof(schedulerModes) / sizeof(const char*); int32 currentMode = get_scheduler_mode(); for (unsigned int i = 0; i < modesCount; i++) { BMessage* m = new BMessage('Schd'); m->AddInt32("mode", i); item = new BMenuItem(B_TRANSLATE(schedulerModes[i]), m); if ((uint32)currentMode == i) item->SetMarked(true); item->SetTarget(gPCView); addtopbottom(item); } addtopbottom(new BSeparatorItem()); if (!be_roster->IsRunning(kTrackerSig)) { item = new IconMenuItem(gPCView->fTrackerIcon, B_TRANSLATE("Restart Tracker"), new BMessage('Trac')); item->SetTarget(gPCView); addtopbottom(item); } if (!be_roster->IsRunning(kDeskbarSig)) { item = new IconMenuItem(gPCView->fDeskbarIcon, B_TRANSLATE("Restart Deskbar"), new BMessage('Dbar')); item->SetTarget(gPCView); addtopbottom(item); } item = new IconMenuItem(gPCView->fTerminalIcon, B_TRANSLATE("New Terminal"), new BMessage('Term')); item->SetTarget(gPCView); addtopbottom(item); addtopbottom(new BSeparatorItem()); bool showLiveInDeskbarItem = gInDeskbar; if (!showLiveInDeskbarItem) { int32 cookie = 0; image_info info; while (get_next_image_info(B_CURRENT_TEAM, &cookie, &info) == B_OK) { if (info.type == B_APP_IMAGE) { // only show the Live in Deskbar item if a) we're running in // deskbar itself, or b) we're running in PC's team. if (strstr(info.name, "ProcessController") != NULL) { showLiveInDeskbarItem = true; break; } } } } if (showLiveInDeskbarItem && be_roster->IsRunning(kDeskbarSig)) { item = new BMenuItem(B_TRANSLATE("Live in the Deskbar"), new BMessage('AlDb')); BDeskbar deskbar; item->SetMarked(gInDeskbar || deskbar.HasItem(kDeskbarItemName)); item->SetTarget(gPCView); addtopbottom(item); addtopbottom(new BSeparatorItem ()); } item = new IconMenuItem(gPCView->fProcessControllerIcon, B_TRANSLATE("About ProcessController" B_UTF8_ELLIPSIS), new BMessage(B_ABOUT_REQUESTED)); item->SetTarget(gPCView); addtopbottom(item); param->where.x -= 5; param->where.y -= 8; popup->Go(param->where, true, true, param->clickToOpenRect); delete popup; for (m = 0; m < systemInfo.used_teams; m++) { if (infos[m].team_info.team >= 0) { delete[] infos[m].thread_info; delete infos[m].team_icon; } } delete[] infos; delete param; atomic_add (&gPopupFlag, -1); gPopupThreadID = 0; return B_OK; }
AppearancePrefView::AppearancePrefView(const char* name, const BMessenger& messenger) : BGroupView(name, B_VERTICAL, 5), fTerminalMessenger(messenger) { const char* kColorTable[] = { B_TRANSLATE_MARK("Text"), B_TRANSLATE_MARK("Background"), B_TRANSLATE_MARK("Cursor"), B_TRANSLATE_MARK("Text under cursor"), B_TRANSLATE_MARK("Selected text"), B_TRANSLATE_MARK("Selected background"), NULL }; fBlinkCursor = new BCheckBox( B_TRANSLATE("Blinking cursor"), new BMessage(MSG_BLINK_CURSOR_CHANGED)); fWarnOnExit = new BCheckBox( B_TRANSLATE("Confirm exit if active programs exist"), new BMessage(MSG_WARN_ON_EXIT_CHANGED)); BMenu* fontMenu = _MakeFontMenu(MSG_HALF_FONT_CHANGED, PrefHandler::Default()->getString(PREF_HALF_FONT_FAMILY), PrefHandler::Default()->getString(PREF_HALF_FONT_STYLE)); fFontField = new BMenuField(B_TRANSLATE("Font:"), fontMenu); BPopUpMenu* schemesPopUp = _MakeColorSchemeMenu(MSG_COLOR_SCHEME_CHANGED, gPredefinedColorSchemes, gPredefinedColorSchemes[0]); fColorSchemeField = new BMenuField(B_TRANSLATE("Color scheme:"), schemesPopUp); BPopUpMenu* colorsPopUp = _MakeMenu(MSG_COLOR_FIELD_CHANGED, kColorTable, kColorTable[0]); fColorField = new BMenuField(B_TRANSLATE("Color:"), colorsPopUp); fTabTitle = new BTextControl("tabTitle", B_TRANSLATE("Tab title:"), "", NULL); fTabTitle->SetModificationMessage( new BMessage(MSG_TAB_TITLE_SETTING_CHANGED)); fTabTitle->SetToolTip(BString(B_TRANSLATE( "The pattern specifying the tab titles. The following placeholders\n" "can be used:\n")) << kTooTipSetTabTitlePlaceholders); fWindowTitle = new BTextControl("windowTitle", B_TRANSLATE("Window title:"), "", NULL); fWindowTitle->SetModificationMessage( new BMessage(MSG_WINDOW_TITLE_SETTING_CHANGED)); fWindowTitle->SetToolTip(BString(B_TRANSLATE( "The pattern specifying the window titles. The following placeholders\n" "can be used:\n")) << kTooTipSetWindowTitlePlaceholders); BLayoutBuilder::Group<>(this) .SetInsets(5, 5, 5, 5) .AddGrid(5, 5) .Add(fTabTitle->CreateLabelLayoutItem(), 0, 0) .Add(fTabTitle->CreateTextViewLayoutItem(), 1, 0) .Add(fWindowTitle->CreateLabelLayoutItem(), 0, 1) .Add(fWindowTitle->CreateTextViewLayoutItem(), 1, 1) .Add(fFontField->CreateLabelLayoutItem(), 0, 2) .Add(fFontField->CreateMenuBarLayoutItem(), 1, 2) .Add(fColorSchemeField->CreateLabelLayoutItem(), 0, 3) .Add(fColorSchemeField->CreateMenuBarLayoutItem(), 1, 3) .Add(fColorField->CreateLabelLayoutItem(), 0, 4) .Add(fColorField->CreateMenuBarLayoutItem(), 1, 4) .End() .AddGlue() .Add(fColorControl = new BColorControl(BPoint(10, 10), B_CELLS_32x8, 8.0, "", new BMessage(MSG_COLOR_CHANGED))) .Add(fBlinkCursor) .Add(fWarnOnExit); fTabTitle->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT); fWindowTitle->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT); fFontField->SetAlignment(B_ALIGN_RIGHT); fColorField->SetAlignment(B_ALIGN_RIGHT); fColorSchemeField->SetAlignment(B_ALIGN_RIGHT); fTabTitle->SetText(PrefHandler::Default()->getString(PREF_TAB_TITLE)); fWindowTitle->SetText(PrefHandler::Default()->getString(PREF_WINDOW_TITLE)); fColorControl->SetValue( PrefHandler::Default()->getRGB(PREF_TEXT_FORE_COLOR)); fBlinkCursor->SetValue(PrefHandler::Default()->getBool(PREF_BLINK_CURSOR)); fWarnOnExit->SetValue(PrefHandler::Default()->getBool(PREF_WARN_ON_EXIT)); BTextControl* redInput = (BTextControl*)fColorControl->ChildAt(0); BTextControl* greenInput = (BTextControl*)fColorControl->ChildAt(1); BTextControl* blueInput = (BTextControl*)fColorControl->ChildAt(2); redInput->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT); greenInput->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT); blueInput->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT); }
#include <Directory.h> #include <Entry.h> #include <File.h> #include <InterfaceDefs.h> #include <Locale.h> #include <Message.h> #include <ServerReadOnlyMemory.h> #include <String.h> #include "ColorSet.h" #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Colors tab" static ColorDescription sColorDescriptionTable[] = { { B_PANEL_BACKGROUND_COLOR, B_TRANSLATE_MARK("Panel background") }, { B_PANEL_TEXT_COLOR, B_TRANSLATE_MARK("Panel text") }, { B_DOCUMENT_BACKGROUND_COLOR, B_TRANSLATE_MARK("Document background") }, { B_DOCUMENT_TEXT_COLOR, B_TRANSLATE_MARK("Document text") }, { B_CONTROL_BACKGROUND_COLOR, B_TRANSLATE_MARK("Control background") }, { B_CONTROL_TEXT_COLOR, B_TRANSLATE_MARK("Control text") }, { B_CONTROL_BORDER_COLOR, B_TRANSLATE_MARK("Control border") }, { B_CONTROL_HIGHLIGHT_COLOR, B_TRANSLATE_MARK("Control highlight") }, { B_CONTROL_MARK_COLOR, B_TRANSLATE_MARK("Control mark") }, { B_NAVIGATION_BASE_COLOR, B_TRANSLATE_MARK("Navigation base") }, { B_NAVIGATION_PULSE_COLOR, B_TRANSLATE_MARK("Navigation pulse") }, { B_SHINE_COLOR, B_TRANSLATE_MARK("Shine") }, { B_SHADOW_COLOR, B_TRANSLATE_MARK("Shadow") }, { B_MENU_BACKGROUND_COLOR, B_TRANSLATE_MARK("Menu background") }, { B_MENU_SELECTED_BACKGROUND_COLOR, B_TRANSLATE_MARK("Selected menu item background") },
#include "PackageListView.h" #include <algorithm> #include <stdio.h> #include <Autolock.h> #include <Catalog.h> #include <ScrollBar.h> #include <Window.h> #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "PackageListView" static const char* skPackageStateAvailable = B_TRANSLATE_MARK("Available"); static const char* skPackageStateUninstalled = B_TRANSLATE_MARK("Uninstalled"); static const char* skPackageStateActive = B_TRANSLATE_MARK("Active"); static const char* skPackageStateInactive = B_TRANSLATE_MARK("Inactive"); static const char* skPackageStatePending = B_TRANSLATE_MARK( "Pending" B_UTF8_ELLIPSIS); inline BString package_state_to_string(PackageInfoRef ref) { switch (ref->State()) { case NONE: return B_TRANSLATE(skPackageStateAvailable); case INSTALLED: return B_TRANSLATE(skPackageStateInactive);
#undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Settings view" static const int32 kMsgSetConnectionPolicy = 'sCpo'; static const int32 kMsgSetDeviceClassDesktop = 'sDCd'; static const int32 kMsgSetDeviceClassServer = 'sDCs'; static const int32 kMsgSetDeviceClassLaptop = 'sDCl'; static const int32 kMsgSetDeviceClassHandheld = 'sDCh'; static const int32 kMsgSetDeviceClassSmartPhone = 'sDCp'; static const int32 kMsgSetInquiryTime = 'afEa'; static const int32 kMsgLocalSwitched = 'lDsW'; static const char* kAllLabel = B_TRANSLATE_MARK("From all devices"); static const char* kTrustedLabel = B_TRANSLATE_MARK("Only from trusted devices"); static const char* kAlwaysLabel = B_TRANSLATE_MARK("Always ask"); static const char* kDesktopLabel = B_TRANSLATE_MARK("Desktop"); static const char* kServerLabel = B_TRANSLATE_MARK("Server"); static const char* kLaptopLabel = B_TRANSLATE_MARK("Laptop"); static const char* kHandheldLabel = B_TRANSLATE_MARK("Handheld"); static const char* kPhoneLabel = B_TRANSLATE_MARK("Smart phone"); // #pragma mark - BluetoothSettingsView::BluetoothSettingsView(const char* name) : BView(name, 0),
#undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "ColorPrefs" // data structures for font prefs struct FontStat { font_family family; int32 style_count; font_style *styles; }; static const char *ColorLabels[] = { B_TRANSLATE_MARK("Text"), B_TRANSLATE_MARK("Background"), B_TRANSLATE_MARK("URL"), B_TRANSLATE_MARK("Server Text"), B_TRANSLATE_MARK("Notice"), B_TRANSLATE_MARK("Action"), B_TRANSLATE_MARK("Quit"), B_TRANSLATE_MARK("Error"), B_TRANSLATE_MARK("Nickname edges (other users)"), B_TRANSLATE_MARK("Nickname edges (self)"), B_TRANSLATE_MARK("Nickname text"), B_TRANSLATE_MARK("Join"), B_TRANSLATE_MARK("Kick"), B_TRANSLATE_MARK("Whois"), B_TRANSLATE_MARK("Names (Normal)"), B_TRANSLATE_MARK("Names (Op)"),
static const float kMaximumWidthCompact = 400.0f; static const float kMinimumHeightCompact = 20.0f; static const float kMaximumHeightCompact = 60.0f; // Basic mode size limits are defined in CalcView.h so // that they can be used by the CalcWindow constructor. static const float kMinimumWidthScientific = 240.0f; static const float kMaximumWidthScientific = 400.0f; static const float kMinimumHeightScientific = 200.0f; static const float kMaximumHeightScientific = 400.0f; // basic mode keypad layout (default) const char *kKeypadDescriptionBasic = B_TRANSLATE_MARK( "7 8 9 ( ) \n" "4 5 6 * / \n" "1 2 3 + - \n" "0 . BS = C \n"); // scientific mode keypad layout const char *kKeypadDescriptionScientific = B_TRANSLATE_MARK( "ln sin cos tan π \n" "log asin acos atan sqrt \n" "exp sinh cosh tanh cbrt \n" "! ceil floor E ^ \n" "7 8 9 ( ) \n" "4 5 6 * / \n" "1 2 3 + - \n" "0 . BS = C \n");
void DecorInfo::_Init(bool isUpdate) { if (!isUpdate && InitCheck() != B_NO_INIT) { // TODO: remove after validation fprintf(stderr, "DecorInfo::_Init()\tImproper init state\n"); return; } BEntry entry; if (fPath == "Default") { if (isUpdate) { // should never happen fprintf(stderr, "DecorInfo::_Init(true)\tBUG BUG updating default" "decorator!?!?!\n"); return; } fAuthors = "DarkWyrm, Stephan Aßmus, Clemens Zeidler, Ingo Weinhold"; fLongDescription = fShortDescription; fLicenseURL = "http://"; fLicenseName = "MIT"; fSupportURL = "http://www.haiku-os.org/"; fVersion = 0.5; fInitStatus = B_OK; fName = gSystemCatalog.GetString(B_TRANSLATE_MARK("Default"), B_TRANSLATION_CONTEXT); fShortDescription = gSystemCatalog.GetString(B_TRANSLATE_MARK( "Default Haiku window decorator."), B_TRANSLATION_CONTEXT); // The following is to get the modification time of the app_server // and, thusly, the Default decorator... // If you can make it more simple, please do! BPath path; find_directory(B_SYSTEM_SERVERS_DIRECTORY, &path); path.Append("app_server"); entry.SetTo(path.Path(), true); if (!entry.Exists()) { fprintf(stderr, "Server MIA the world has become its slave! " "Call the CIA!\n"); return; } entry.GetModificationTime(&fModificationTime); return; } // Is a file system object... entry.SetTo(&fRef, true); // follow link if (entry.InitCheck() != B_OK) { fInitStatus = entry.InitCheck(); return; } if (!entry.Exists()) { if (isUpdate) { fprintf(stderr, "DecorInfo::_Init()\tERROR: decorator deleted" " after CheckForChanges() found it!\n"); fprintf(stderr, "DecorInfo::_Init()\tERROR: DecorInfo will " "Unset\n"); Unset(); } return; } // update fRef to match file system object entry.GetRef(&fRef); entry.GetModificationTime(&fModificationTime); BResources resources(&fRef); if (resources.InitCheck() != B_OK) { fprintf(stderr, "DecorInfo::_Init()\t BResource InitCheck() failure\n"); return; } size_t infoSize = 0; const void* infoData = resources.LoadResource(B_MESSAGE_TYPE, "be:decor:info", &infoSize); BMessage infoMessage; if (infoData == NULL || infoSize == 0 || infoMessage.Unflatten((const char*)infoData) != B_OK) { fprintf(stderr, "DecorInfo::_init()\tNo extended information found for" " \"%s\"\n", fRef.name); } else { infoMessage.FindString("name", &fName); infoMessage.FindString("authors", &fAuthors); infoMessage.FindString("short_descr", &fShortDescription); infoMessage.FindString("long_descr", &fLongDescription); infoMessage.FindString("lic_url", &fLicenseURL); infoMessage.FindString("lic_name", &fLicenseName); infoMessage.FindString("support_url", &fSupportURL); infoMessage.FindFloat ("version", &fVersion); } fInitStatus = B_OK; fName = fRef.name; }
void TTracker::InstallDefaultTemplates() { // the following templates are in big endian and we rely on the Tracker // translation support to swap them on little endian machines // // in case there is an attribute (B_RECT_TYPE) that gets swapped by the media // (unzip, file system endianness swapping, etc., the correct endianness for // the correct machine has to be used here static AttributeTemplate sDefaultQueryTemplate[] = /* /boot/home/config/settings/Tracker/DefaultQueryTemplates/ application_octet-stream */ { { // default frame kAttrWindowFrame, B_RECT_TYPE, 16, (const char*)&kDefaultFrame }, { // attr: _trk/viewstate kAttrViewState_be, B_RAW_TYPE, 49, "o^\365R\000\000\000\012Tlst\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\357\323\335RCSTR\000\000" "\000\000\000\000\000\000\000" }, { // attr: _trk/columns kAttrColumns_be, B_RAW_TYPE, 0, NULL } }; #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Default Query Columns" static const ColumnData defaultQueryColumns[] = { { B_TRANSLATE_MARK("Name"), 40, 145, B_ALIGN_LEFT, "_stat/name", B_STRING_TYPE, true, true }, { B_TRANSLATE_MARK("Path"), 200, 225, B_ALIGN_LEFT, "_trk/path", B_STRING_TYPE, false, false }, { B_TRANSLATE_MARK("Size"), 440, 41, B_ALIGN_LEFT, "_stat/size", B_OFF_T_TYPE, true, false }, { B_TRANSLATE_MARK("Modified"), 496, 138, B_ALIGN_LEFT, "_stat/modified", B_TIME_TYPE, true, false } }; static AttributeTemplate sBookmarkQueryTemplate[] = /* /boot/home/config/settings/Tracker/DefaultQueryTemplates/ application_x-vnd.Be-bookmark */ { { // default frame kAttrWindowFrame, B_RECT_TYPE, 16, (const char*)&kDefaultFrame }, { // attr: _trk/viewstate kAttrViewState_be, B_RAW_TYPE, 49, "o^\365R\000\000\000\012Tlst\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000w\373\175RCSTR\000\000\000" "\000\000\000\000\000\000" }, { // attr: _trk/columns kAttrColumns_be, B_RAW_TYPE, 0, NULL } }; #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Bookmark Query Columns" static const ColumnData bookmarkQueryColumns[] = { { B_TRANSLATE_MARK("Title"), 40, 171, B_ALIGN_LEFT, "META:title", B_STRING_TYPE, false, true }, { B_TRANSLATE_MARK("URL"), 226, 287, B_ALIGN_LEFT, kAttrURL, B_STRING_TYPE, false, true }, { B_TRANSLATE_MARK("Keywords"), 528, 130, B_ALIGN_LEFT, "META:keyw", B_STRING_TYPE, false, true } }; static AttributeTemplate sPersonQueryTemplate[] = /* /boot/home/config/settings/Tracker/DefaultQueryTemplates/ application_x-vnd.Be-bookmark */ { { // default frame kAttrWindowFrame, B_RECT_TYPE, 16, (const char*)&kDefaultFrame }, { // attr: _trk/viewstate kAttrViewState_be, B_RAW_TYPE, 49, "o^\365R\000\000\000\012Tlst\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\357\323\335RCSTR\000\000" "\000\000\000\000\000\000\000" }, { // attr: _trk/columns kAttrColumns_be, B_RAW_TYPE, 0, NULL }, }; #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Person Query Columns" static const ColumnData personQueryColumns[] = { { B_TRANSLATE_MARK("Name"), 40, 115, B_ALIGN_LEFT, "_stat/name", B_STRING_TYPE, true, true }, { B_TRANSLATE_MARK("Work Phone"), 170, 90, B_ALIGN_LEFT, kAttrWorkPhone, B_STRING_TYPE, false, true }, { B_TRANSLATE_MARK("E-mail"), 275, 93, B_ALIGN_LEFT, kAttrEmail, B_STRING_TYPE, false, true }, { B_TRANSLATE_MARK("Company"), 383, 120, B_ALIGN_LEFT, kAttrCompany, B_STRING_TYPE, false, true } }; static AttributeTemplate sEmailQueryTemplate[] = /* /boot/home/config/settings/Tracker/DefaultQueryTemplates/ text_x-email */ { { // default frame kAttrWindowFrame, B_RECT_TYPE, 16, (const char*)&kDefaultFrame }, { // attr: _trk/viewstate kAttrViewState_be, B_RAW_TYPE, 49, "o^\365R\000\000\000\012Tlst\000\000\000\000\000\000\000\000\000\000" "\000\000\000\000\000\000\000\000\000\000\366_\377ETIME\000\000\000" "\000\000\000\000\000\000" }, { // attr: _trk/columns kAttrColumns_be, B_RAW_TYPE, 0, NULL }, }; #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Email Query Columns" static const ColumnData emailQueryColumns[] = { { B_TRANSLATE_MARK("Subject"), 40, 110, B_ALIGN_LEFT, "MAIL:subject", B_STRING_TYPE, false, false }, { B_TRANSLATE_MARK("From"), 165, 153, B_ALIGN_LEFT, "MAIL:from", B_STRING_TYPE, false, false }, { B_TRANSLATE_MARK("When"), 333, 120, B_ALIGN_LEFT, "MAIL:when", B_STRING_TYPE, false, false }, { B_TRANSLATE_MARK("Status"), 468, 50, B_ALIGN_RIGHT, "MAIL:status", B_STRING_TYPE, false, true } }; BNode node; BString query(kQueryTemplates); query += "/application_octet-stream"; if (!BContainerWindow::DefaultStateSourceNode(query.String(), &node, false)) { if (BContainerWindow::DefaultStateSourceNode(query.String(), &node, true)) { BMallocIO stream; size_t n = mkColumnsBits(stream, defaultQueryColumns, 4, "Default Query Columns"); sDefaultQueryTemplate[2].fSize = n; sDefaultQueryTemplate[2].fBits = (const char*)stream.Buffer(); AttributeStreamFileNode fileNode(&node); AttributeStreamTemplateNode tmp(sDefaultQueryTemplate, 3); fileNode << tmp; } } (query = kQueryTemplates) += "/application_x-vnd.Be-bookmark"; if (!BContainerWindow::DefaultStateSourceNode(query.String(), &node, false)) { if (BContainerWindow::DefaultStateSourceNode(query.String(), &node, true)) { BMallocIO stream; size_t n = mkColumnsBits(stream, bookmarkQueryColumns, 3, "Bookmark Query Columns"); sBookmarkQueryTemplate[2].fSize = n; sBookmarkQueryTemplate[2].fBits = (const char*)stream.Buffer(); AttributeStreamFileNode fileNode(&node); AttributeStreamTemplateNode tmp(sBookmarkQueryTemplate, 3); fileNode << tmp; } } (query = kQueryTemplates) += "/application_x-person"; if (!BContainerWindow::DefaultStateSourceNode(query.String(), &node, false)) { if (BContainerWindow::DefaultStateSourceNode(query.String(), &node, true)) { BMallocIO stream; size_t n = mkColumnsBits(stream, personQueryColumns, 4, "Person Query Columns"); sPersonQueryTemplate[2].fSize = n; sPersonQueryTemplate[2].fBits = (const char*)stream.Buffer(); AttributeStreamFileNode fileNode(&node); AttributeStreamTemplateNode tmp(sPersonQueryTemplate, 3); fileNode << tmp; } } (query = kQueryTemplates) += "/text_x-email"; if (!BContainerWindow::DefaultStateSourceNode(query.String(), &node, false)) { if (BContainerWindow::DefaultStateSourceNode(query.String(), &node, true)) { BMallocIO stream; size_t n = mkColumnsBits(stream, emailQueryColumns, 4, "Email Query Columns"); sEmailQueryTemplate[2].fSize = n; sEmailQueryTemplate[2].fBits = (const char*)stream.Buffer(); AttributeStreamFileNode fileNode(&node); AttributeStreamTemplateNode tmp(sEmailQueryTemplate, 3); fileNode << tmp; } } }
#include <Catalog.h> #include <Locale.h> #include <PropertyInfo.h> #include "Transport.h" #include "Printer.h" #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "PrintServerApp Scripting" static property_info prop_list[] = { { "ActivePrinter", { B_GET_PROPERTY, B_SET_PROPERTY }, { B_DIRECT_SPECIFIER }, B_TRANSLATE_MARK("Retrieve or select the active printer") }, { "Printer", { B_GET_PROPERTY }, { B_INDEX_SPECIFIER, B_NAME_SPECIFIER, B_REVERSE_INDEX_SPECIFIER }, B_TRANSLATE_MARK("Retrieve a specific printer") }, { "Printer", { B_CREATE_PROPERTY }, { B_DIRECT_SPECIFIER }, B_TRANSLATE_MARK("Create a new printer") }, { "Printer", { B_DELETE_PROPERTY }, { B_INDEX_SPECIFIER, B_NAME_SPECIFIER, B_REVERSE_INDEX_SPECIFIER }, B_TRANSLATE_MARK("Delete a specific printer") }, { "Printers", { B_COUNT_PROPERTIES }, { B_DIRECT_SPECIFIER }, B_TRANSLATE_MARK("Return the number of available printers") }, { "Transport", { B_GET_PROPERTY }, { B_INDEX_SPECIFIER, B_NAME_SPECIFIER, B_REVERSE_INDEX_SPECIFIER }, B_TRANSLATE_MARK("Retrieve a specific transport") }, { "Transports", { B_COUNT_PROPERTIES }, { B_DIRECT_SPECIFIER }, B_TRANSLATE_MARK("Return the number of available transports") },
SettingsView::SettingsView(MouseSettings& settings) : BBox("main_view"), fSettings(settings) { // Add the "Mouse Type" pop up menu fTypeMenu = new BPopUpMenu("unknown"); fTypeMenu->AddItem(new BMenuItem(B_TRANSLATE("1-Button"), new BMessage(kMsgMouseType))); fTypeMenu->AddItem(new BMenuItem(B_TRANSLATE("2-Button"), new BMessage(kMsgMouseType))); fTypeMenu->AddItem(new BMenuItem(B_TRANSLATE("3-Button"), new BMessage(kMsgMouseType))); BMenuField* typeField = new BMenuField(B_TRANSLATE("Mouse type:"), fTypeMenu); typeField->SetAlignment(B_ALIGN_RIGHT); // Create the "Double-click speed slider... fClickSpeedSlider = new BSlider("double_click_speed", B_TRANSLATE("Double-click speed"), new BMessage(kMsgDoubleClickSpeed), 0, 1000, B_HORIZONTAL); fClickSpeedSlider->SetHashMarks(B_HASH_MARKS_BOTTOM); fClickSpeedSlider->SetHashMarkCount(5); fClickSpeedSlider->SetLimitLabels(B_TRANSLATE("Slow"), B_TRANSLATE("Fast")); // Create the "Mouse Speed" slider... fMouseSpeedSlider = new BSlider("mouse_speed", B_TRANSLATE("Mouse speed"), new BMessage(kMsgMouseSpeed), 0, 1000, B_HORIZONTAL); fMouseSpeedSlider->SetHashMarks(B_HASH_MARKS_BOTTOM); fMouseSpeedSlider->SetHashMarkCount(7); fMouseSpeedSlider->SetLimitLabels(B_TRANSLATE("Slow"), B_TRANSLATE("Fast")); // Create the "Mouse Acceleration" slider... fAccelerationSlider = new BSlider("mouse_acceleration", B_TRANSLATE("Mouse acceleration"), new BMessage(kMsgAccelerationFactor), 0, 1000, B_HORIZONTAL); fAccelerationSlider->SetHashMarks(B_HASH_MARKS_BOTTOM); fAccelerationSlider->SetHashMarkCount(5); fAccelerationSlider->SetLimitLabels(B_TRANSLATE("Slow"), B_TRANSLATE("Fast")); // Mouse image... fMouseView = new MouseView(fSettings); // Create the "Double-click test area" text box... BTextControl* doubleClickTextControl = new BTextControl(NULL, B_TRANSLATE("Double-click test area"), NULL); doubleClickTextControl->SetAlignment(B_ALIGN_LEFT, B_ALIGN_CENTER); // Add the "Mouse focus mode" pop up menu fFocusMenu = new BPopUpMenu(B_TRANSLATE("Click to focus and raise")); const char *focusLabels[] = {B_TRANSLATE_MARK("Click to focus and raise"), B_TRANSLATE_MARK("Click to focus"), B_TRANSLATE_MARK("Focus follows mouse")}; const mode_mouse focusModes[] = {B_NORMAL_MOUSE, B_CLICK_TO_FOCUS_MOUSE, B_FOCUS_FOLLOWS_MOUSE}; for (int i = 0; i < 3; i++) { BMessage* message = new BMessage(kMsgMouseFocusMode); message->AddInt32("mode", focusModes[i]); fFocusMenu->AddItem(new BMenuItem(B_TRANSLATE_NOCOLLECT(focusLabels[i]), message)); } BMenuField* focusField = new BMenuField(B_TRANSLATE("Focus mode:"), fFocusMenu); focusField->SetAlignment(B_ALIGN_RIGHT); // Add the "Focus follows mouse mode" pop up menu fFocusFollowsMouseMenu = new BPopUpMenu(B_TRANSLATE("Normal")); const char *focusFollowsMouseLabels[] = {B_TRANSLATE_MARK("Normal"), B_TRANSLATE_MARK("Warp"), B_TRANSLATE_MARK("Instant warp")}; const mode_focus_follows_mouse focusFollowsMouseModes[] = {B_NORMAL_FOCUS_FOLLOWS_MOUSE, B_WARP_FOCUS_FOLLOWS_MOUSE, B_INSTANT_WARP_FOCUS_FOLLOWS_MOUSE}; for (int i = 0; i < 3; i++) { BMessage* message = new BMessage(kMsgFollowsMouseMode); message->AddInt32("mode_focus_follows_mouse", focusFollowsMouseModes[i]); fFocusFollowsMouseMenu->AddItem(new BMenuItem( B_TRANSLATE_NOCOLLECT(focusFollowsMouseLabels[i]), message)); } BMenuField* focusFollowsMouseField = new BMenuField( "Focus follows mouse mode:", fFocusFollowsMouseMenu); focusFollowsMouseField->SetAlignment(B_ALIGN_RIGHT); // Add the "Click-through" check box fAcceptFirstClickBox = new BCheckBox(B_TRANSLATE("Accept first click"), new BMessage(kMsgAcceptFirstClick)); // dividers BBox* hdivider = new BBox( BRect(0, 0, 1, 1), B_EMPTY_STRING, B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FRAME_EVENTS, B_FANCY_BORDER); hdivider->SetExplicitMaxSize(BSize(1, B_SIZE_UNLIMITED)); BBox* vdivider = new BBox( BRect(0, 0, 1, 1), B_EMPTY_STRING, B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FRAME_EVENTS, B_FANCY_BORDER); vdivider->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, 1)); // Build the layout SetLayout(new BGroupLayout(B_HORIZONTAL)); AddChild(BGroupLayoutBuilder(B_VERTICAL, 10) .AddGroup(B_HORIZONTAL, 10) .AddGroup(B_VERTICAL, 10, 1) .AddGroup(B_HORIZONTAL, 10) .AddGlue() .Add(typeField) .AddGlue() .End() .AddGlue() .Add(BGroupLayoutBuilder(B_HORIZONTAL, 10) .AddGlue() .Add(fMouseView) .AddGlue() ) .AddGlue() .Add(doubleClickTextControl) .End() .Add(hdivider) .AddGroup(B_VERTICAL, 5, 3) .Add(BGroupLayoutBuilder(B_HORIZONTAL, 0) .Add(fClickSpeedSlider) ) .Add(BGroupLayoutBuilder(B_HORIZONTAL, 0) .Add(fMouseSpeedSlider) ) .Add(BGroupLayoutBuilder(B_HORIZONTAL, 0) .Add(fAccelerationSlider) ) .End() .End() .Add(vdivider) .AddGroup(B_HORIZONTAL, 10) .Add(focusField) .AddGlue() .AddGroup(B_VERTICAL, 0) .Add(fAcceptFirstClickBox) .End() .End() .SetInsets(5, 5, 5, 5) ); }
kMsgTimeout = 'time' }; // The timeout code to wait indefinitely // Note: The timeout is encoded in seconds, -1 indicates to wait indefinitely const int32 kTimeoutIndefinitely = -1; const int32 kDefaultTimeout = kTimeoutIndefinitely; struct TimeoutOption { int32 timeout; const char* label; }; static const TimeoutOption gTimeoutOptions[] = { { 0, B_TRANSLATE_MARK("Immediately")}, { 1, B_TRANSLATE_MARK("After one second")}, { 2, B_TRANSLATE_MARK("After two seconds")}, { 3, B_TRANSLATE_MARK("After three seconds")}, { 4, B_TRANSLATE_MARK("After four seconds")}, { 5, B_TRANSLATE_MARK("After five seconds")}, { 60, B_TRANSLATE_MARK("After one minute")}, { kTimeoutIndefinitely, B_TRANSLATE_MARK("Never")} }; #define kNumberOfTimeoutOptions \ (int32)(sizeof(gTimeoutOptions) / sizeof(TimeoutOption)) static int32