void _BTextInput_::KeyDown(const char* bytes, int32 numBytes) { switch (*bytes) { case B_ENTER: { if (!TextControl()->IsEnabled()) break; if (fPreviousText == NULL || strcmp(Text(), fPreviousText) != 0) { TextControl()->Invoke(); free(fPreviousText); fPreviousText = strdup(Text()); } SelectAll(); break; } case B_TAB: BView::KeyDown(bytes, numBytes); break; default: BTextView::KeyDown(bytes, numBytes); break; } }
// ----------------------------------------------------------------------------- // CSIPSettIntegerSetPage::OkToExitL // Called to validate input before closing the page // ----------------------------------------------------------------------------- // TBool CSIPSettIntegerSetPage::OkToExitL( TBool aAccept ) { __GSLOGSTRING("CSIPSettIntegerSetPage::OkToExitL " ) TBool ret( ETrue ); TLex16 lex; TInt value; TBuf<KMaxServerPortLength> intText; if ( !aAccept ) { // User pressed cancel - return back to original text and go away RestoreOriginalSettingL(); return ETrue; } TextControl()->GetText( intText ); lex.Assign( intText.Ptr() ); lex.Val( value ); if( value >= 0 && value <= 65535 || intText == NULLString ) { if( intText == NULLString ) { TextControl()->SetTextL(&ZeroString); } UpdateSettingL(); // Everything OK, save setting and exit page AcceptSettingL(); ret = ETrue; } else { ret = EFalse; } return ret; }
void _BTextInput_::DeleteText(int32 fromOffset, int32 toOffset) { BTextView::DeleteText(fromOffset, toOffset); TextControl()->InvokeNotify(TextControl()->ModificationMessage(), B_CONTROL_MODIFIED); }
filter_result CurrencyBoxFilter::KeyFilter(const int32 &key, const int32 &mod) { // Here is where all the *real* work for a date box is done. if(key==B_TAB && ((NavTextBox*)TextControl())->IsTabFiltering()) { if(mod & B_SHIFT_KEY) SendMessage(new BMessage(M_PREVIOUS_FIELD)); else SendMessage(new BMessage(M_NEXT_FIELD)); return B_SKIP_MESSAGE; } #ifdef ENTER_NAVIGATION if(key==B_ENTER) { SendMessage(new BMessage(M_ENTER_NAVIGATION)); return B_SKIP_MESSAGE; } #endif // if(key == B_ESCAPE && !IsEscapeCancel()) // return B_SKIP_MESSAGE; return B_DISPATCH_MESSAGE; }
void _BTextInput_::MakeFocus(bool state) { if (state == IsFocus()) return; BTextView::MakeFocus(state); if (state) { SetInitialText(); SelectAll(); } else { if (strcmp(Text(), fPreviousText) != 0) TextControl()->Invoke(); free(fPreviousText); fPreviousText = NULL; } if (Window() != NULL) { // Invalidate parent to draw or remove the focus mark if (BTextControl* parent = dynamic_cast<BTextControl*>(Parent())) { BRect frame = Frame(); frame.InsetBy(-1.0, -1.0); parent->Invalidate(frame); } } }
// ----------------------------------------------------------------------------- // CSIPSettIntegerSetPage::DynamicInitL // Called to the Setpage initialize complete // ----------------------------------------------------------------------------- // void CSIPSettIntegerSetPage::DynamicInitL () { CAknIntegerSettingPage::DynamicInitL(); iNULLString.Copy(NULLString); if( iValue == -1 ) { TextControl()->SetTextL(&iNULLString); } }
void _BTextInput_::InsertText(const char* inText, int32 inLength, int32 inOffset, const text_run_array* inRuns) { // Filter all line breaks, note that inText is not terminated. if (inLength == 1) { if (*inText == '\n' || *inText == '\r') BTextView::InsertText(" ", 1, inOffset, inRuns); else BTextView::InsertText(inText, 1, inOffset, inRuns); } else { BString filteredText(inText, inLength); filteredText.ReplaceAll('\n', ' '); filteredText.ReplaceAll('\r', ' '); BTextView::InsertText(filteredText.String(), inLength, inOffset, inRuns); } TextControl()->InvokeNotify(TextControl()->ModificationMessage(), B_CONTROL_MODIFIED); }
status_t BMailProtocolConfigView::Archive(BMessage *into, bool deep) const { const char *host = TextControl((BView *)this,"host"); int32 port = -1; BString host_name = host; if (host_name.FindFirst(':') > -1) { port = atol(host_name.String() + host_name.FindFirst(':') + 1); host_name.Truncate(host_name.FindFirst(':')); } if (into->ReplaceString("server",host_name.String()) != B_OK) into->AddString("server",host_name.String()); // since there is no need for the port option, remove it here into->RemoveName("port"); if (port != -1) into->AddInt32("port",port); if (into->ReplaceString("username",TextControl((BView *)this,"user")) != B_OK) into->AddString("username",TextControl((BView *)this,"user")); // remove old unencrypted passwords into->RemoveName("password"); set_passwd(into,"cpasswd",TextControl((BView *)this,"pass")); BMenuField *field; int32 index = -1; if ((field = (BMenuField *)(FindView("flavor"))) != NULL) { BMenuItem *item = field->Menu()->FindMarked(); if (item != NULL) index = field->Menu()->IndexOf(item); } if (into->ReplaceInt32("flavor",index) != B_OK) into->AddInt32("flavor",index); index = -1; if ((field = (BMenuField *)(FindView("auth_method"))) != NULL) { BMenuItem *item = field->Menu()->FindMarked(); if (item != NULL) index = field->Menu()->IndexOf(item); } if (into->ReplaceInt32("auth_method",index) != B_OK) into->AddInt32("auth_method",index); if (FindView("leave_mail_on_server") != NULL) { BControl* control = (BControl*)FindView("leave_mail_on_server"); bool on = (control->Value() == B_CONTROL_ON); if (into->ReplaceBool("leave_mail_on_server", on) != B_OK) into->AddBool("leave_mail_on_server", on); control = (BControl*)FindView("delete_remote_when_local"); on = (control->Value() == B_CONTROL_ON); if (into->ReplaceBool("delete_remote_when_local", on)) { into->AddBool("delete_remote_when_local", on); } } else { if (into->ReplaceBool("leave_mail_on_server", false) != B_OK) into->AddBool("leave_mail_on_server", false); if (into->ReplaceBool("delete_remote_when_local", false) != B_OK) into->AddBool("delete_remote_when_local", false); } if (fBodyDownloadConfig) fBodyDownloadConfig->Archive(into, deep); return B_OK; }