Developer forums (C::B DEVELOPMENT STRICTLY!) > Contributions to C::B

Small error in projectmanagerui

(1/1)

gd_on:
When an opened project is modified outside C::B a warning message is displayed. But the text displayed is only "Project", no name, ...
This is done at line 2700 in projectmanagerui.cpp. If I replace prj->GetFilename().c_str() by prj->GetTitle().wx_str(), the message is better, giving now the correct name. Nevertheless, it's not enough because the message has 2 lines (the second one add information for the action to be done), and only one is displayed. I don't know where to modify this !

gd_on

Miguel Gimenez:
The dialog uses a wxStaticLabel, but this control does not recognize LF as a line breaker. It can be forced to wrap when a given width is exceded; to get this you must call the Wrap method of the control.

You can test modifying the code in confirmreplacedlg.cpp:38 from


--- Code: ---    XRCCTRL(*this, "lblMessage", wxStaticText)->SetLabel(label);
    this->SetEscapeId(XRCID("btnCancel"));

--- End code ---

to (untested)


--- Code: ---    XRCCTRL(*this, "lblMessage", wxStaticText)->SetLabel(label);
    XRCCTRL(*this, "lblMessage", wxStaticText)->Wrap((GetWidth()*9)/10);
    this->SetEscapeId(XRCID("btnCancel"));

--- End code ---

gd_on:
Tested but it does not work.
First, the GetWidth is not seen (declared out of the scope). Compiler suggests to use GetMinWidth.
I tried like that, but even with a full rebuild (because I think it affects sdk), I see only the first line.
I have also tried to delete the \n in the string, but the line is now truncated and the end of the string is missing. :(

gd_on

Miguel Gimenez:
Sorry. The width value should be get using


--- Code: ---int Width, Height;
GetClientSize(&Width, &Height);

--- End code ---

May be the sizer doesn't let the label grow vertically.

Navigation

[0] Message Index

Go to full version