Название: show desktop Отправлено: sendevent от Апрель 24, 2010, 19:56 уже несколько раз проскакивал вопрос, да и самому надо:
как создать виджет, остающийся видимым после "свернуть все окна" ("показать рабочий стол", win+d, etc.) Linux (KDE, ибо с другими DE не знаком) KDE 4 с плазмой делают этот вопрос неактуальным - достаточно просто установить Qt::WindowStaysOnBottomHint, "показать рабочий стол" показывает нечто вроде макосевого дашборда, к виджетам-не-плазмоидам доступа нет (upd: наврал, виджет "поверх всех окон" - с флагами Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint | Qt::ToolTip | Qt::FramelessWindowHint - вполне себе доступен). в KDE 3 приходит уже не помню какой ивент, после которого можно просто показать виджет заново с маленькой задержкой (QTimer::singleShot(25) к show();). думаю, кому третьи кеды актуальны - сами могут посмотреть, что приходит при сабже. Windows про нее обычно и спрашивают =) вот, нарыл (ну как нарыл... вторая ссылка в гугле :-) ) на codeproject (http://www.codeproject.com/KB/gadgets/CalendarGadget.aspx). суть: ставим хук на EVENT_SYSTEM_FOREGROUND, в нем проверяем, если для десктопа (GetClassName для целевого HWND - "WorkerW") - bring-to-top'аем свой виджет: Код: SetWindowPos( widgetHwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE ); Mac OS мак трогал один раз. чужой. в качестве пользователя. посему - хз че там да как=) собсно, предлагаю поделиться опытом для мака и линуксовых WM'ов. Название: Re: show desktop Отправлено: crossly от Апрель 26, 2010, 11:47 Цитировать KDE 4 с плазмой делают этот вопрос неактуальным - достаточно просто установить Qt::WindowStaysOnBottomHint..... это изврат.... лучше написать плазмоид...Название: Re: show desktop Отправлено: fdn от Апрель 27, 2010, 08:01 Это плохой тон. Если есть "кнопка" свернуть все окна, то она должна сворачивать все окна без исключения.
Название: Re: show desktop Отправлено: Igors от Апрель 27, 2010, 09:59 По поводу Mac. Там есть "Hide" - можно выбрать из контекстного меню или просто кликнуть в окно др. задачи с нажатой клавишей Option. Результат - все окна задачи скрываются (но не сбрасываются в minimize), хоть эти окна модальные, floating - хоть какие. Другой процесс получает фокус и захватывает меню.
Можно ли это победить - не знаю, но точно - надо прочитать apple буквари, нарыть системные ф-ции и.т.п. Вместо "легкой изящной вещицы" - нудная рутинная работа без всякого творческого элемента :) |