О лени, багах и тулбарах

September 24th, 2009 Begemot Posted in Использование

Человек ленив, увы.

Я давно жаловался на “баг” в тулбаре, была проблема с цветом фона под вистой, в тройке такая же проблема появилась уже и под XP. Я думал засабмитить баг, но лень моя нашептовала мне что не может быть что бы такого еще никто не заметил и не сообщил…

Когда в тройке эта проблема уже вылезла и в хп – я не выдержал, и поволынив еще недельку все-таки написал в багтрекер. Где мне быстро дали понять степень моего падения…

В общем бага была у меня, я использую AUI, проблема была в том что при добавлении тулбара в AUIManager, я указывал Resizable(false), в результате чего тулбар не растягивался на всю ширину окна. Resizable(true) тоже не выход – появляются визуальные артефакты, выкрутился так Resizable(false).MinSize(wxSize(1110, 10)):

itemFrame1->GetAuiManager().AddPane(pToolBar, wxAuiPaneInfo().ToolbarPane().Name(_T("TpplBarPane")).Top().Layer(10).Resizable(false).MinSize(wxSize(1110, 10)).Dockable(false).CaptionVisible(false).CloseButton(false).DestroyOnClose(false).Floatable(false).Gripper(false).Movable(false).PaneBorder(false));

Ну вот теперь красота, а ведь можно было эту проблему решить еще почти год назад… код то в продакшене работает, лень и пофигизм А теперь уже пора на wxAuiToolbar переходить, вроде же в тройке есть уже, буду смотреть в ближайшее время.

Related:

5 Responses to “О лени, багах и тулбарах”

  1. Для заметки,
    Если указывать MinSize() “реальных” размеров, то это решение может стать проблемой при использовании wxAuiToolbar и патча, который автоматически переворачивает расположение тулбара при перетягивании с горизонтального на вертикальный, т.к. при прикреплении его к боковой стенке этот самый тулбар становится шириной, указанной в MinSize.
    Я решил обе проблемы, просто написав MinSize(1, -1) (-1, чтобы ширина оставалась динамичной). Не знаю, может это такие грабли, но это реально помогло и тулбар растягивается как в горизонтальном положении, так и в вертикальном и при этом принимает нормальные размеры при смене ориентации 🙂
    Очень может быть, это касается только wxAuiToolbar.

  2. Для обычного тулбара MinSize(1, -1) не помогает.

    Кстати, а чем хорош wxAuiToolbar? В смысле если мне нужен просто тулбар, на 7 иконок без наворотов, типа перетаскивания, ориентации, кастомизации. Есть смысл переходить на wxAuiToolbar или можно сидеть на старом и не дергаться?

  3. имхо, в контексте 2.8.10 переходить смысла нет (если не нужны разные фенечки), т.к. в ней wxAuiToolbar все-таки сыроват, даже в хелпе не упоминается. На 2.9 в этом плане не смотрел. А вот к тройке, думаю, стоило бы перейти. Все-таки, если пользуешь ауй, то тогда лучше и тулбар брать родной. А так из каких-то явных преимуществ перед обычным чет не припомню, ну если не брать во внимание красивости)

  4. Вот надыбал у Джулиана (про отличия):
    wxAuiToolBar supports drop-down buttons, control labels and overflow items.

  5. Ясно, в общем пока не надо переходить не буду, а как припечет – разберемся:)