void UserIoSourceState::CalculateStringWidths(bool forceVisible) { Component::CalculateStringWidths(forceVisible); GUI_SetFont(GetFont()); int component_width = GetWidth() - mLeftMargin - mRightMargin; int component_height = GetHeight(); int string_width_pixels = 0; int string_height_pixels = 0; for (int i = 0; i < mStringIdCount; i++) { string_width_pixels = 0; string_height_pixels = 0; bool fits = false; const char* p_text = Languages::GetInstance()->GetString(mSourceIndexStringIds[i].stringId); if (strlen(p_text)>0 && p_text[0] != '{') { GUI_RECT rect; if (mWordWrap) { SetText(p_text); int line_count = WrapText(component_width); fits = (line_count <= (component_height/GetFont()->YSize)); GUI_GetTextExtend(&rect,mTextWrapped,strlen(mTextWrapped)); string_width_pixels = abs(rect.x1 - rect.x0) + 1; string_height_pixels = (abs(rect.y1 - rect.y0) + 1) * line_count; } else { GUI_GetTextExtend(&rect,p_text,strlen(p_text)); string_width_pixels = abs(rect.x1 - rect.x0) + 1; string_height_pixels = abs(rect.y1 - rect.y0) + 1; fits = (string_width_pixels <= component_width); } } bool visible = (mSourceIndexStringIds[i].source == mpChannelConfig->GetSource() && mSourceIndexStringIds[i].sourceIndex == mpChannelConfig->GetSourceIndex()); CSV_ENTRY entry; entry.componentId = mComponentId; entry.stringId = mSourceIndexStringIds[i].stringId; entry.componentWidth = component_width; entry.stringWidth = string_width_pixels; entry.componentHeight = component_height; entry.stringHeight = string_height_pixels; entry.wordwrap = mWordWrap; entry.fits = fits; entry.visible = visible; entry.forcedVisible = forceVisible; StringWidthCalculator::GetInstance()->WriteToCSV(entry); } }
wxString HelpTextBuiltIn( const wxString & Key ) { if(Key==wxT("welcome")) { return WrapText( wxString(wxT("")) + _("<center><h3>How to get Help</h3></center>") + _("Welcome to Audacity ") + AUDACITY_VERSION_STRING + wxT("!<p>") + _("These are our support methods:") + wxT("</p>") + wxT("<ul><li>") + _(" [[file:quick_help.html|Quick Help]] (should be installed locally, <a href=\"http://manual.audacityteam.org/index.php?title=Quick_Help\">internet version if it isn't</a>)") + wxT("</li><li>") + _(" [[file:index.html|Manual]] (should be installed locally, <a href=\"http://manual.audacityteam.org/index.php\">internet version if it isn't</a>)") + wxT("</li><li>") + _(" [[http://wiki.audacityteam.org/index.php|Wiki]] (the latest tips, tricks and tutorials, on the internet)") + wxT("</li><li>") + _(" <a href=\"http://forum.audacityteam.org/\">Forum</a> (ask your question directly, on the internet)") + wxT("</li></ul></p><p>") + _(" For even quicker answers, all the online resources above are <b>searchable</b>.") + wxT("</p>") ); } // Remote help allows us to link to a local copy of the help if it exists, // or provide a message that takes you to the internet if it does not. // It's used by the menu item Help > Index if(Key == wxT("remotehelp") ) { // *URL* will be replaced by whatever URL we are looking for. return WrapText(_("<p>You do not appear to have 'help' installed on your computer.<br> \ Please <a href=\"*URL*\">view or download it online</a>.") ); } return wxT(""); }
MLLabel::MLLabel(QWidget *buddy,const QString &text,QWidget *parent, const char *name,Qt::WFlags f): QLabel(buddy,text,parent,name,f) { label_wrap=false; label_text=text; QLabel::setText(WrapText()); }
void MyPrintout::DrawClue(const XPuzzle::Clue & clue, int * x, int * y) { // Draw clue text // Adjust x to account for the clue number width before drawing the clue // text. Return x to its previous position afterwards so that the clue // number ends up in the right place. wxDC * dc = GetDC(); *x += m_numberWidth + NUMBER_PADDING; dc->SetFont(m_clueFont); int height; DrawTextLine(WrapText(clue.Text(), m_clueWidth), x, y, NULL, &height); *x -= m_numberWidth + NUMBER_PADDING; if (m_isDrawing) { // Draw clue number dc->SetFont(m_numberFont); dc->DrawLabel(FormatNumber(clue.Number()), wxRect(*x, *y - height, m_numberWidth, dc->GetCharHeight()), wxALIGN_RIGHT); } }
bool CInputDialog::Create(wxWindow* parent, const wxString& title, wxString text) { m_allowEmpty = false; SetParent(parent); if (!wxXmlResource::Get()->LoadDialog(this, parent, _T("ID_INPUTDIALOG"))) return false; SetTitle(title); if (!XRCCTRL(*this, "wxID_OK", wxButton)) return false; if (!XRCCTRL(*this, "wxID_CANCEL", wxButton)) return false; if (!XRCCTRL(*this, "ID_STRING", wxTextCtrl)) return false; wxStaticText* pText = XRCCTRL(*this, "ID_TEXT", wxStaticText); if (!pText) return false; WrapText(pText, text, 250); pText->SetLabel(text); GetSizer()->Fit(this); GetSizer()->SetSizeHints(this); XRCCTRL(*this, "ID_STRING", wxTextCtrl)->SetFocus(); return true; }
inline FTBBox FTSimpleLayoutImpl::BBoxI(const T* string, const int len, FTPoint position) { FTBBox tmp; WrapText(string, len, position, 0, &tmp); return tmp; }
void Label::SetText( const sf::String& text ) { m_text = text; if( m_wrap ) { WrapText(); } RequestResize(); Invalidate(); }
void MyPrintout::DrawText() { wxDC * dc = GetDC(); // Scale the DC. MapScreenSizeToPageMargins(*g_pageSetupData); m_pageRect = GetLogicalPageMarginsRect(*g_pageSetupData); int x = m_pageRect.x; int y = m_pageRect.y; LayoutColumns(); // Title and author dc->SetFont(m_titleFont); DrawTextLine(WrapText(m_puz->m_title, m_columnWidth), &x, &y); dc->SetFont(m_authorFont); DrawTextLine(WrapText(m_puz->m_author, m_columnWidth), &x, &y); // Draw clue lists const wxString heading_list[2] = { _T("ACROSS"), _T("DOWN") }; const XPuzzle::ClueList * clue_list[2] = { &m_puz->m_across, &m_puz->m_down }; for (int i = 0; i < 2; ++i) { // Add some space above ACROSS and DOWN clues. y += CLUE_HEADING_PADDING; // Draw the heading dc->SetFont(m_headingFont); DrawTextLine(WrapText(heading_list[i], m_columnWidth), &x, &y); // Draw the clues for (XPuzzle::ClueList::const_iterator it = clue_list[i]->begin(); it != clue_list[i]->end(); ++it) { DrawClue(*it, &x, &y); } } }
void ArrayButton::SetKeycap() { if(button_length<0) { QPushButton::setText(""); } else { QPushButton::setText(QString().sprintf("%s\n%s", (const char *)WrapText(button_label), (const char *)GetTimeLength(button_length,true,false))); } }
bool CWrapEngine::WrapText(wxWindow* parent, int id, unsigned long maxLength) { wxStaticText* pText = wxDynamicCast(parent->FindWindow(id), wxStaticText); if (!pText) return false; wxString text = pText->GetLabel(); if (!WrapText(parent, text, maxLength)) return false; pText->SetLabel(text); return true; }
void Label::HandleRequisitionChange() { if( m_wrap ) { WrapText(); } static auto calculate_y_requisition = false; if( !calculate_y_requisition ) { calculate_y_requisition = true; RequestResize(); } else { calculate_y_requisition = false; } }
bool wxDialogEx::SetChildLabel(int id, const wxString& label, unsigned long maxLength /*=0*/) { wxStaticText* pText = wxDynamicCast(FindWindow(id), wxStaticText); if (!pText) return false; if (!maxLength) pText->SetLabel(label); else { wxString wrapped = label; WrapText(this, wrapped, maxLength); pText->SetLabel(wrapped); } return true; }
void Plugin::AddScriptToManager (const UserScript& script) { QString scriptDesc = script.Description (); QStandardItem* name = new QStandardItem (script.Name ()); QStandardItem* description = new QStandardItem (scriptDesc); name->setEditable (false); name->setData (script.IsEnabled (), EnabledRole); description->setEditable (false); WrapText (scriptDesc); description->setToolTip (scriptDesc); description->setData (script.IsEnabled (), EnabledRole); QList<QStandardItem*> items; items << name << description; Model_->appendRow (items); }
void Label::HandleSizeChange() { if( !m_wrap || ( GetAllocation().width <= 0 ) ) { return; } WrapText(); static auto calculate_y_requisition = false; if( !calculate_y_requisition ) { calculate_y_requisition = true; RequestResize(); } else { calculate_y_requisition = false; } }
wxString HelpText( const wxString & Key ) { // Possible future enhancement... // We could look for the text as a local file and use // that if we find it... // if( wxFileExists( Path+Key ) ) // ... wxString Text; Text = HelpTextBuiltIn( Key ); if( !Text.IsEmpty()) return LinkExpand( Text ); // Perhaps useful for debugging - we'll return key that we didn't find. return WrapText( Key ); }
void Label::SetLineWrap( bool wrap ) { if( wrap == m_wrap ) { return; } m_wrap = wrap; RequestResize(); if( wrap ) { WrapText(); } else { m_wrapped_text = L""; } Invalidate(); }
void MessageArea::Draw() { SDL_FillRect ( dest_surface, &dest, 0 ); if (current_message < 0) return; std::vector < std::string > wrapped_text = WrapText ( messages[current_message] + ( blocked ? " --more--" : "" ), font, dest.w ); SDL_Rect this_line_dest; this_line_dest.x = originx; this_line_dest.y = originy; // from SDL manual : Only the position is used in the dstrect (the width and height are ignored). // this_line_dest.w = sizex; // this_line_dest.h = font_height; for ( int i=0 ; i < wrapped_text.size() ; i++ ) { DrawText ( wrapped_text[i], dest_surface, font, message_color, this_line_dest ); this_line_dest.y += font_height; } SDL_UpdateRect ( dest_surface, dest.x, dest.y, dest.w, dest.h ); }
void CGUITextLayout::UpdateStyled(const vecText &text, const vecColors &colors, float maxWidth, bool forceLTRReadingOrder) { // empty out our previous string m_lines.clear(); m_colors = colors; // if we need to wrap the text, then do so if (m_wrap && maxWidth > 0) WrapText(text, maxWidth); else LineBreakText(text, m_lines); // remove any trailing blank lines while (!m_lines.empty() && m_lines.back().m_text.empty()) m_lines.pop_back(); BidiTransform(m_lines, forceLTRReadingOrder); // and cache the width and height for later reading CalcTextExtent(); }
inline void FTSimpleLayoutImpl::RenderI(const T *string, const int len, FTPoint position, int renderMode) { pen = FTPoint(0.0f, 0.0f); WrapText(string, len, position, renderMode, NULL); }
void MLLabel::setFont(const QFont &font) { label_font=font; QLabel::setFont(font); QLabel::setText(WrapText()); }
void MLLabel::setWordWrapEnabled(bool state) { label_wrap=state; QLabel::setText(WrapText()); }
int CWrapEngine::WrapRecursive(wxWindow* wnd, wxSizer* sizer, int max) { // This function auto-wraps static texts. #if WRAPDEBUG >= 3 static int level = 1; plvl printf("Enter with max = %d\n", max); #endif if (max <= 0) { #if WRAPDEBUG >= 3 plvl printf("Leave: max <= 0\n"); #endif return wrap_failed; } int result = 0; for (unsigned int i = 0; i < sizer->GetChildren().GetCount(); i++) { wxSizerItem* item = sizer->GetItem(i); if (!item || !item->IsShown()) continue; int rborder = 0; if (item->GetFlag() & wxRIGHT) rborder = item->GetBorder(); int lborder = 0; if (item->GetFlag() & wxLEFT) lborder = item->GetBorder(); wxRect rect = item->GetRect(); wxSize min = item->GetMinSize(); if (!min.IsFullySpecified()) min = item->CalcMin(); wxASSERT(min.GetWidth() + rborder + lborder <= sizer->GetMinSize().GetWidth()); if (min.GetWidth() + item->GetPosition().x + lborder + rborder <= max) continue; wxWindow* window; wxSizer* subSizer = 0; if ((window = item->GetWindow())) { wxStaticText* text = wxDynamicCast(window, wxStaticText); if (text) { #ifdef __WXMAC__ const int offset = 3; #else const int offset = 2; #endif if (max - rect.GetLeft() - rborder - offset <= 0) continue; wxString str = text->GetLabel(); if (!WrapText(text, str, max - wxMax(0, rect.GetLeft()) - rborder - offset)) { #if WRAPDEBUG >= 3 plvl printf("Leave: WrapText failed\n"); #endif return result | wrap_failed; } text->SetLabel(str); result |= wrap_didwrap; continue; } wxNotebook* book = wxDynamicCast(window, wxNotebook); if (book) { int maxPageWidth = 0; for (unsigned int i = 0; i < book->GetPageCount(); i++) { wxNotebookPage* page = book->GetPage(i); maxPageWidth = wxMax(maxPageWidth, page->GetRect().GetWidth()); } for (unsigned int i = 0; i < book->GetPageCount(); i++) { wxNotebookPage* page = book->GetPage(i); wxRect pageRect = page->GetRect(); int pageMax = max - rect.GetLeft() - pageRect.GetLeft() - rborder - rect.GetWidth() + maxPageWidth; result |= WrapRecursive(wnd, page->GetSizer(), pageMax); if (result & wrap_failed) { #if WRAPDEBUG >= 3 plvl printf("Leave: WrapRecursive on notebook page failed\n"); #endif return result; } } continue; } if (wxDynamicCast(window, wxCheckBox) || wxDynamicCast(window, wxRadioButton) || wxDynamicCast(window, wxChoice)) { #if WRAPDEBUG >= 3 plvl printf("Leave: WrapRecursive on unshrinkable controls failed\n"); #endif result |= wrap_failed; return result; } // We assume here that all other oversized controls can scale } else if ((subSizer = item->GetSizer())) { int subBorder = 0; // Add border of static box sizer wxStaticBoxSizer* sboxSizer; if ((sboxSizer = wxDynamicCast(subSizer, wxStaticBoxSizer))) { int top, other; sboxSizer->GetStaticBox()->GetBordersForSizer(&top, &other); subBorder += other; } #if WRAPDEBUG >= 3 level++; #endif result |= WrapRecursive(0, subSizer, max - rborder - subBorder); #if WRAPDEBUG >= 3 level--; #endif if (result & wrap_failed) { #if WRAPDEBUG >= 3 plvl printf("Leave: WrapRecursive on sizer failed\n"); #endif return result; } } } #if WRAPDEBUG >= 3 plvl printf("Leave: Success\n"); #endif return result; }
MainWidget::MainWidget(QWidget *parent,const char *name) : QMainWindow(parent,name) { key_ysize=70; // // Read Command Options // RDConfig *config=new RDConfig(); QString map_filename=config->filename(); delete config; RDCmdSwitch *cmd= new RDCmdSwitch(qApp->argc(),qApp->argv(),"rdsoftkeys",RDSOFTKEYS_USAGE); for(unsigned i=0;i<cmd->keys();i++) { if(cmd->key(i)=="--map-file") { map_filename=cmd->value(i); } } delete cmd; // // Generate Font // QFont font("Helvetica",12,QFont::Bold); font.setPixelSize(12); QFont label_font("Helvetica",18,QFont::Bold); label_font.setPixelSize(18); setCaption(QString("RDSoftKeys")+" v"+VERSION); // // Create And Set Icon // key_icon_map=new QPixmap(rivendell_xpm); setIcon(*key_icon_map); // // RML Send Socket // key_socket=new QSocketDevice(QSocketDevice::Datagram); // // Create Buttons // QPushButton *button; QString rmlcmd; int n=0; QString color_name; QColor color; QString str1; QString str2; int h=0; int s=0; int v=0; QSignalMapper *mapper=new QSignalMapper(this); connect(mapper,SIGNAL(mapped(int)),this,SLOT(buttonData(int))); RDProfile *profile=new RDProfile(); profile->setSource(map_filename); key_columns= profile->intValue("SoftKeys","Columns",RDSOFTKEYS_DEFAULT_COLUMNS); unsigned col=0; unsigned row=0; while(!(rmlcmd=profile->stringValue("SoftKeys",QString(). sprintf("Command%d",n+1),"")).isEmpty()) { for(unsigned i=0;i<rmlcmd.length();i++) { if(rmlcmd.at(i)==':') { key_macros.push_back(rmlcmd.right(rmlcmd.length()-(i+1))); key_addrs.push_back(rmlcmd.left(i)); button=new QPushButton(this); button->setGeometry(10+90*col,10+60*row,80,50); button-> setText(WrapText(button,profile-> stringValue("SoftKeys",QString(). sprintf("Legend%d",n+1), QString().sprintf("Button %d",n+1)))); if(!(color_name=profile->stringValue("SoftKeys", QString().sprintf("Color%d",n+1),"")). isEmpty()) { color=QColor(color_name); QPalette pal=QPalette(color,backgroundColor()); color.getHsv(&h,&s,&v); if((h>180)&&(h<300)) { v=255; } else { if(v<168) { v=255; } else { v=0; } } s=0; color.setHsv(h,s,v); pal.setColor(QPalette::Active,QColorGroup::ButtonText,color); pal.setColor(QPalette::Inactive,QColorGroup::ButtonText,color); button->setPalette(pal); } mapper->setMapping(button,n); connect(button,SIGNAL(clicked()),mapper,SLOT(map())); if(++col==key_columns) { col=0; row++; key_ysize+=60; } } } n++; } if((key_macros.size()%key_columns)==0) { key_ysize-=60; } // // Set Window Size // setMinimumWidth(sizeHint().width()); setMaximumWidth(sizeHint().width()); setMinimumHeight(sizeHint().height()); setMaximumHeight(sizeHint().height()); }
void MedSLTDocWindow::SetHelpExamples(string& result) { ACE_TRACE("[MedSLTDocWindow::SetHelpExamples()]"); GdkColormap *colormap = gtk_widget_get_colormap(m_list); GdkColor color; // Get GTK thread lock gdk_threads_enter(); string buffer(""); m_list_items = 0; if ((m_back_translation != "") && (m_back_translation != "error.")) { buffer = m_back_translation + "?"; WrapText(buffer); gchar* item = g_strdup(buffer.c_str()); gtk_clist_append((GtkCList*)m_list, &item); color.red = color_map[m_list_items][0]; color.green = color_map[m_list_items][1]; color.blue = color_map[m_list_items][2]; gdk_color_alloc(colormap, &color); gtk_clist_set_background(GTK_CLIST(m_list), 0, &color); free(item); ++m_list_items; } buffer = ""; while (result.size() > 0) { SplitHelpExamples(result, buffer, "_"); if ((buffer == "") || (buffer == "error.")) { break; } if (buffer != m_back_translation) { buffer += "?"; WrapText(buffer); gchar* item = g_strdup(buffer.c_str()); gtk_clist_append((GtkCList*)m_list, &item); color.red = color_map[m_list_items][0]; color.green = color_map[m_list_items][1]; color.blue = color_map[m_list_items][2]; gdk_color_alloc(colormap, &color); gtk_clist_set_background(GTK_CLIST(m_list), m_list_items, &color); free(item); ++m_list_items; buffer = ""; ACE_DEBUG((LM_DEBUG, ACE_TEXT("%I[DEBUG] [MedSLTDocWindow::SetHelpExamples()] " "[Ouput: %s]\n"), buffer.c_str())); } } if (m_list_items != 0) { gtk_clist_select_row((GtkCList*)m_list, 0, 0); SetListIndex(0); } gdk_flush(); // Release GTK thread lock gdk_threads_leave(); return; }
bool CAboutDialog::Create(wxWindow* parent) { if (!Load(parent, _T("ID_ABOUT"))) return false; XRCCTRL(*this, "ID_URL", wxHyperlinkCtrl)->SetLabel(_T("https://filezilla-project.org")); XRCCTRL(*this, "ID_COPYRIGHT", wxStaticText)->SetLabel(_T("Copyright (C) 2004-2013 Tim Kosse")); wxString version = CBuildInfo::GetVersion(); if (CBuildInfo::GetBuildType() == _T("nightly")) version += _T("-nightly"); if (!SetLabel(XRCID("ID_VERSION"), version)) return false; wxStaticText* pHost = XRCCTRL(*this, "ID_HOST", wxStaticText); if (!pHost) return false; wxStaticText* pHostDesc = XRCCTRL(*this, "ID_HOST_DESC", wxStaticText); if (!pHostDesc) return false; wxString host = CBuildInfo::GetHostname(); if (host == _T("")) { pHost->Hide(); pHostDesc->Hide(); } else pHost->SetLabel(host); wxStaticText* pBuild = XRCCTRL(*this, "ID_BUILD", wxStaticText); if (!pBuild) return false; wxStaticText* pBuildDesc = XRCCTRL(*this, "ID_BUILD_DESC", wxStaticText); if (!pBuildDesc) return false; wxString build = CBuildInfo::GetBuildSystem(); if (build == _T("")) { pBuild->Hide(); pBuildDesc->Hide(); } else pBuild->SetLabel(build); if (!SetLabel(XRCID("ID_BUILDDATE"), CBuildInfo::GetBuildDateString())) return false; if (!SetLabel(XRCID("ID_COMPILEDWITH"), CBuildInfo::GetCompiler(), 200)) return false; wxStaticText* pCompilerFlags = XRCCTRL(*this, "ID_CFLAGS", wxStaticText); if (!pCompilerFlags) return false; wxStaticText* pCompilerFlagsDesc = XRCCTRL(*this, "ID_CFLAGS_DESC", wxStaticText); if (!pCompilerFlagsDesc) return false; wxString compilerFlags = CBuildInfo::GetCompilerFlags(); if (compilerFlags == _T("")) { pCompilerFlags->Hide(); pCompilerFlagsDesc->Hide(); } else { WrapText(this, compilerFlags, 200); pCompilerFlags->SetLabel(compilerFlags); } wxStaticText* pVer_wx = XRCCTRL(*this, "ID_VER_WX", wxStaticText); if (pVer_wx) pVer_wx->SetLabel(GetDependencyVersion(dependency::wxwidgets)); wxStaticText* pVer_gnutls = XRCCTRL(*this, "ID_VER_GNUTLS", wxStaticText); if (pVer_gnutls) pVer_gnutls->SetLabel(GetDependencyVersion(dependency::gnutls)); wxStaticText* pVer_sqlite = XRCCTRL(*this, "ID_VER_SQLITE", wxStaticText); if (pVer_sqlite) pVer_sqlite->SetLabel(GetDependencyVersion(dependency::sqlite)); wxStaticText* pSystemName = XRCCTRL(*this, "ID_SYSTEM_NAME", wxStaticText); if (!pSystemName) return false; wxStaticText* pSystemNameDesc = XRCCTRL(*this, "ID_SYSTEM_NAME_DESC", wxStaticText); if (!pSystemNameDesc) return false; wxString os = wxGetOsDescription(); if (os.empty()) { pSystemName->Hide(); pSystemNameDesc->Hide(); } else pSystemName->SetLabel(os); wxStaticText* pSystemVersion = XRCCTRL(*this, "ID_SYSTEM_VER", wxStaticText); if (!pSystemVersion) return false; wxStaticText* pSystemVersionDesc = XRCCTRL(*this, "ID_SYSTEM_VER_DESC", wxStaticText); if (!pSystemVersionDesc) return false; int major, minor; if (wxGetOsVersion(&major, &minor) != wxOS_UNKNOWN) { wxString version = wxString::Format(_T("%d.%d"), major, minor); pSystemVersion->SetLabel(version); } else { pSystemVersionDesc->Hide(); pSystemVersion->Hide(); } wxStaticText* pSystemPlatform = XRCCTRL(*this, "ID_SYSTEM_PLATFORM", wxStaticText); if (!pSystemPlatform) return false; wxStaticText* pSystemPlatformDesc = XRCCTRL(*this, "ID_SYSTEM_PLATFORM_DESC", wxStaticText); if (!pSystemPlatformDesc) return false; #if defined(__WXMSW__) if (::wxIsPlatform64Bit()) pSystemPlatform->SetLabel(_("64 bit system")); else pSystemPlatform->SetLabel(_("32 bit system")); #else pSystemPlatform->Hide(); pSystemPlatformDesc->Hide(); #endif GetSizer()->Fit(this); GetSizer()->SetSizeHints(this); return true; }
void CUpdateWizard::OnEngineEvent(wxEvent& event) { if (!m_pEngine) return; if (m_currentPage >= 3) { CNotification *pNotification = m_pEngine->GetNextNotification(); while (pNotification) { delete pNotification; pNotification = m_pEngine->GetNextNotification(); } return; } CNotification *pNotification = m_pEngine->GetNextNotification(); while (pNotification) { switch (pNotification->GetID()) { case nId_logmsg: { if (!m_loaded) break; CLogmsgNotification* pLogMsg = reinterpret_cast<CLogmsgNotification *>(pNotification); if (pLogMsg->msgType == Status || pLogMsg->msgType == Command) { if (!m_currentPage) { wxStaticText *pText = XRCCTRL(*this, "ID_CHECKINGTEXTPROGRESS", wxStaticText); wxString text = pLogMsg->msg; text.Replace(_T("&"), _T("&&")); WrapText(pText, text, m_pages[0]->GetClientSize().x); pText->SetLabel(text); m_pages[0]->GetSizer()->Layout(); wxGauge* pProgress = XRCCTRL(*this, "ID_CHECKINGPROGRESS", wxGauge); int value = pProgress->GetValue(); #ifdef __WXDEBUG__ wxASSERT(value < MAXCHECKPROGRESS); #endif if (value < MAXCHECKPROGRESS) pProgress->SetValue(value + 1); } else if (m_currentPage == 2) { wxStaticText *pText = XRCCTRL(*this, "ID_DOWNLOADPROGRESSTEXT", wxStaticText); wxString text = pLogMsg->msg; text.Replace(_T("&"), _T("&&")); WrapText(pText, text, m_pages[2]->GetClientSize().x); pText->SetLabel(text); m_pages[2]->GetSizer()->Layout(); } } wxString label; switch (pLogMsg->msgType) { case Error: label = _("Error:"); break; case Status: label = _("Status:"); break; case Command: label = _("Command:"); break; case Response: label = _("Response:"); break; default: break; } if (label != _T("")) m_update_log += label + _T(" ") + pLogMsg->msg + _T("\n"); } break; case nId_operation: { COperationNotification* pOpMsg = reinterpret_cast<COperationNotification*>(pNotification); if (pOpMsg->nReplyCode != FZ_REPLY_OK) { while (pNotification) { delete pNotification; pNotification = m_pEngine->GetNextNotification(); } FailedTransfer(); return; } if (!m_inTransfer) { if (m_loaded && !m_currentPage) { wxGauge* pProgress = XRCCTRL(*this, "ID_CHECKINGPROGRESS", wxGauge); pProgress->SetValue(pProgress->GetValue() + 1); } int res = SendTransferCommand(); if (res == FZ_REPLY_WOULDBLOCK) break; else if (res != FZ_REPLY_OK) { FailedTransfer(); break; } } if (!m_loaded || !m_currentPage) { m_pEngine->Command(CDisconnectCommand()); ParseData(); } else if (m_currentPage == 2) { if (!VerifyChecksum()) break; int pos = m_localFile.Find('.', true); wxASSERT(pos > 0); wxRenameFile(m_localFile, m_localFile.Left(pos)); m_localFile = m_localFile.Left(pos); wxStaticText* pText = XRCCTRL(*this, "ID_DOWNLOADCOMPLETE", wxStaticText); wxASSERT(pText); wxButton* pNext = wxDynamicCast(FindWindow(wxID_FORWARD), wxButton); pNext->Enable(); XRCCTRL(*this, "ID_DOWNLOADPROGRESS", wxGauge)->SetValue(100); #ifdef __WXMSW__ pText->SetLabel(_("The most recent version has been downloaded. Click on Finish to close FileZilla and to start the installation.")); #else pText->SetLabel(_("The most recent version has been downloaded. Please install it the same way you installed this version.")); #endif pText->Show(); RewrapPage(2); m_successfully_downloaded = true; } } break; case nId_data: { if (!m_inTransfer) break; wxASSERT(!m_currentPage); CDataNotification* pOpMsg = reinterpret_cast<CDataNotification*>(pNotification); int len; char* data = pOpMsg->Detach(len); if (m_data.Len() + len > 131072) { delete [] data; m_pEngine->Command(CCancelCommand()); FailedTransfer(); break; } for (int i = 0; i < len; i++) { if (!data[i] || (unsigned char)data[i] > 127) { delete [] data; data = 0; m_pEngine->Command(CCancelCommand()); FailedTransfer(); break; } } if (data) { m_data += wxString(data, wxConvUTF8, len); delete [] data; } break; } case nId_asyncrequest: { CAsyncRequestNotification* pData = reinterpret_cast<CAsyncRequestNotification *>(pNotification); if (pData->GetRequestID() == reqId_fileexists) { reinterpret_cast<CFileExistsNotification *>(pData)->overwriteAction = CFileExistsNotification::overwrite; } else if (pData->GetRequestID() == reqId_certificate) { CCertificateNotification* pCertNotification = (CCertificateNotification*)pData; pCertNotification->m_trusted = true; } m_pEngine->SetAsyncRequestReply(pData); } break; case nId_transferstatus: if (!m_loaded) break; if (m_currentPage == 2) { CTransferStatusNotification *pTransferStatusNotification = reinterpret_cast<CTransferStatusNotification *>(pNotification); const CTransferStatus *pStatus = pTransferStatusNotification->GetStatus(); SetTransferStatus(pStatus); } break; default: break; } delete pNotification; pNotification = m_pEngine->GetNextNotification(); } }
bool CAboutDialog::Create(wxWindow* parent) { if (!Load(parent, _T("ID_ABOUT"))) { return false; } wxBitmap bmp = CThemeProvider::Get()->CreateBitmap("ART_FILEZILLA", wxString(), CThemeProvider::GetIconSize(iconSizeLarge)); xrc_call(*this, "ID_FILEZILLA_LOGO", &wxStaticBitmap::SetBitmap, bmp); xrc_call(*this, "ID_URL", &wxHyperlinkCtrl::SetLabel, _T("https://filezilla-project.org/")); xrc_call(*this, "ID_COPYRIGHT", &wxStaticText::SetLabel, _T("Copyright (C) 2004-2016 Tim Kosse")); wxString version = CBuildInfo::GetVersion(); if (CBuildInfo::GetBuildType() == _T("nightly")) version += _T("-nightly"); if (!SetChildLabel(XRCID("ID_VERSION"), version)) return false; wxString const host = CBuildInfo::GetHostname(); if (host.empty()) { xrc_call(*this, "ID_HOST", &wxStaticText::Hide); xrc_call(*this, "ID_HOST_DESC", &wxStaticText::Hide); } else { xrc_call(*this, "ID_HOST", &wxStaticText::SetLabel, host); } wxString const build = CBuildInfo::GetBuildSystem(); if (build.empty()) { xrc_call(*this, "ID_BUILD", &wxStaticText::Hide); xrc_call(*this, "ID_BUILD_DESC", &wxStaticText::Hide); } else { xrc_call(*this, "ID_BUILD", &wxStaticText::SetLabel, build); } if (!SetChildLabel(XRCID("ID_BUILDDATE"), CBuildInfo::GetBuildDateString())) return false; if (!SetChildLabel(XRCID("ID_COMPILEDWITH"), CBuildInfo::GetCompiler(), 200)) return false; wxString compilerFlags = CBuildInfo::GetCompilerFlags(); if (compilerFlags.empty()) { xrc_call(*this, "ID_CFLAGS", &wxStaticText::Hide); xrc_call(*this, "ID_CFLAGS_DESC", &wxStaticText::Hide); } else { WrapText(this, compilerFlags, 250); xrc_call(*this, "ID_CFLAGS", &wxStaticText::SetLabel, compilerFlags); } xrc_call(*this, "ID_VER_WX", &wxStaticText::SetLabel, GetDependencyVersion(lib_dependency::wxwidgets)); xrc_call(*this, "ID_VER_GNUTLS", &wxStaticText::SetLabel, GetDependencyVersion(lib_dependency::gnutls)); xrc_call(*this, "ID_VER_SQLITE", &wxStaticText::SetLabel, GetDependencyVersion(lib_dependency::sqlite)); wxString const os = wxGetOsDescription(); if (os.empty()) { xrc_call(*this, "ID_SYSTEM_NAME", &wxStaticText::Hide); xrc_call(*this, "ID_SYSTEM_NAME_DESC", &wxStaticText::Hide); } else { xrc_call(*this, "ID_SYSTEM_NAME", &wxStaticText::SetLabel, os); } int major, minor; if (GetRealOsVersion(major, minor)) { wxString osVersion = wxString::Format(_T("%d.%d"), major, minor); int fakeMajor, fakeMinor; if (wxGetOsVersion(&fakeMajor, &fakeMinor) != wxOS_UNKNOWN && (fakeMajor != major || fakeMinor != minor)) { osVersion += _T(" "); osVersion += wxString::Format(_("(app-compat is set to %d.%d)"), fakeMajor, fakeMinor); } xrc_call(*this, "ID_SYSTEM_VER", &wxStaticText::SetLabel, osVersion); } else { xrc_call(*this, "ID_SYSTEM_VER", &wxStaticText::Hide); xrc_call(*this, "ID_SYSTEM_VER_DESC", &wxStaticText::Hide); } #ifdef __WXMSW__ if (::wxIsPlatform64Bit()) xrc_call(*this, "ID_SYSTEM_PLATFORM", &wxStaticText::SetLabel, _("64-bit system")); else xrc_call(*this, "ID_SYSTEM_PLATFORM", &wxStaticText::SetLabel, _("32-bit system")); #else xrc_call(*this, "ID_SYSTEM_PLATFORM", &wxStaticText::Hide); xrc_call(*this, "ID_SYSTEM_PLATFORM_DESC", &wxStaticText::Hide); #endif wxString cpuCaps = CBuildInfo::GetCPUCaps(' '); if (!cpuCaps.empty()) { WrapText(this, cpuCaps, 250); xrc_call(*this, "ID_SYSTEM_CPU", &wxStaticText::SetLabel, cpuCaps); } else { xrc_call(*this, "ID_SYSTEM_CPU_DESC", &wxStaticText::Hide); xrc_call(*this, "ID_SYSTEM_CPU", &wxStaticText::Hide); } xrc_call(*this, "ID_SYSTEM_SETTINGS_DIR", &wxStaticText::SetLabel, COptions::Get()->GetOption(OPTION_DEFAULT_SETTINGSDIR)); GetSizer()->Fit(this); GetSizer()->SetSizeHints(this); return true; }
CBSurface *CBFontTT::RenderTextToTexture(const WideString &text, int width, TTextAlign align, int maxHeight, int &textOffset) { TextLineList lines; WrapText(text, width, maxHeight, lines); TextLineList::iterator it; int textHeight = lines.size() * (m_MaxCharHeight + m_Ascender); SDL_Surface *surface = SDL_CreateRGBSurface(0, width, textHeight, 32, 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000); SDL_LockSurface(surface); int posY = (int)GetLineHeight() - (int)m_Descender; for (it = lines.begin(); it != lines.end(); ++it) { TextLine *line = (*it); int posX = 0; switch (align) { case TAL_CENTER: posX += (width - line->GetWidth()) / 2; break; case TAL_RIGHT: posX += width - line->GetWidth(); break; } textOffset = 0; for (size_t i = 0; i < line->GetText().length(); i++) { wchar_t ch = line->GetText()[i]; GlyphInfo *glyph = m_GlyphCache->GetGlyph(ch); if (!glyph) continue; textOffset = std::max(textOffset, glyph->GetBearingY()); } int origPosX = posX; wchar_t prevChar = L'\0'; for (size_t i = 0; i < line->GetText().length(); i++) { wchar_t ch = line->GetText()[i]; GlyphInfo *glyph = m_GlyphCache->GetGlyph(ch); if (!glyph) continue; float kerning = 0; if (prevChar != L'\0') kerning = GetKerning(prevChar, ch); posX += (int)kerning; if (glyph->GetBearingY() > 0) { int i = 10; } SDL_Rect rect; rect.x = posX + glyph->GetBearingX(); rect.y = posY - glyph->GetBearingY() + textOffset; rect.w = glyph->GetImage()->w; rect.h = glyph->GetImage()->h; BlitSurface(glyph->GetImage(), surface, &rect); prevChar = ch; posX += (int)(glyph->GetAdvanceX()); posY += (int)(glyph->GetAdvanceY()); } if (m_IsUnderline) { for (int i = origPosX; i < origPosX + line->GetWidth(); i++) { Uint8 *buf = (Uint8 *)surface->pixels + (int)(m_UnderlinePos + m_Ascender) * surface->pitch; Uint32 *buf32 = (Uint32 *)buf; buf32[i] = SDL_MapRGBA(surface->format, 255, 255, 255, 255); } } SDL_UnlockSurface(surface); delete line; line = NULL; posY += GetLineHeight(); } CBSurfaceSDL *wmeSurface = new CBSurfaceSDL(Game); if (SUCCEEDED(wmeSurface->CreateFromSDLSurface(surface))) { SDL_FreeSurface(surface); return wmeSurface; } else { SDL_FreeSurface(surface); delete wmeSurface; return NULL; } }
bool CAboutDialog::Create(wxWindow* parent) { if (!Load(parent, _T("ID_ABOUT"))) return false; XRCCTRL(*this, "ID_URL", wxHyperlinkCtrl)->SetLabel(_T("http://filezilla-project.org")); XRCCTRL(*this, "ID_COPYRIGHT", wxStaticText)->SetLabel(_T("Copyright (C) 2004-2009 Tim Kosse")); wxString version = CBuildInfo::GetVersion(); if (CBuildInfo::GetBuildType() == _T("nightly")) version += _T("-nightly"); if (!SetLabel(XRCID("ID_VERSION"), version)) return false; wxStaticText* pHost = XRCCTRL(*this, "ID_HOST", wxStaticText); if (!pHost) return false; wxStaticText* pHostDesc = XRCCTRL(*this, "ID_HOST_DESC", wxStaticText); if (!pHostDesc) return false; wxString host = CBuildInfo::GetHostname(); if (host == _T("")) { pHost->Hide(); pHostDesc->Hide(); } else pHost->SetLabel(host); wxStaticText* pBuild = XRCCTRL(*this, "ID_BUILD", wxStaticText); if (!pBuild) return false; wxStaticText* pBuildDesc = XRCCTRL(*this, "ID_BUILD_DESC", wxStaticText); if (!pBuildDesc) return false; wxString build = CBuildInfo::GetBuildSystem(); if (build == _T("")) { pBuild->Hide(); pBuildDesc->Hide(); } else pBuild->SetLabel(build); if (!SetLabel(XRCID("ID_BUILDDATE"), CBuildInfo::GetBuildDateString())) return false; if (!SetLabel(XRCID("ID_COMPILEDWITH"), CBuildInfo::GetCompiler(), 200)) return false; wxStaticText* pCompilerFlags = XRCCTRL(*this, "ID_CFLAGS", wxStaticText); if (!pCompilerFlags) return false; wxStaticText* pCompilerFlagsDesc = XRCCTRL(*this, "ID_CFLAGS_DESC", wxStaticText); if (!pCompilerFlagsDesc) return false; wxString compilerFlags = CBuildInfo::GetCompilerFlags(); if (compilerFlags == _T("")) { pCompilerFlags->Hide(); pCompilerFlagsDesc->Hide(); } else { WrapText(this, compilerFlags, 200); pCompilerFlags->SetLabel(compilerFlags); } wxStaticText* pVer_wx = XRCCTRL(*this, "ID_VER_WX", wxStaticText); if (pVer_wx) pVer_wx->SetLabel(wxVERSION_NUM_DOT_STRING_T); wxStaticText* pVer_gnutls = XRCCTRL(*this, "ID_VER_GNUTLS", wxStaticText); if (pVer_gnutls) pVer_gnutls->SetLabel(GetDependencyVersion(dependency_gnutls)); GetSizer()->Fit(this); GetSizer()->SetSizeHints(this); return true; }
void MLLabel::setText(const QString &string) { label_text=string; QLabel::setText(WrapText()); }