bool Label::Create(LPCTSTR name, HINSTANCE hInstance) { // Set this instance's name StrCopy(mName, MAX_NAME, name); // Read configuration first since we need it to create the window ReadConfig(); // Create the window mWindow = CreateWindowEx(WS_EX_TOOLWINDOW, WINDOW_CLASS, NULL, WS_POPUP, mX, mY, mWidth, mHeight, NULL, NULL, hInstance, this); if (!mWindow) { TRACE2("%s: CreateWindowEx failed, GetLastError returns %d", MODULE_NAME, GetLastError()); return false; } // Adjust the window's z-order, make it sticky, and show it SetAlwaysOnTop(mAlwaysOnTop); SetSticky(true); SetVisible(mVisible); return true; }
void OBSProjector::Init(int monitor, bool window, QString title) { QScreen *screen = QGuiApplication::screens()[monitor]; if (!window) setGeometry(screen->geometry()); bool alwaysOnTop = config_get_bool(GetGlobalConfig(), "BasicWindow", "ProjectorAlwaysOnTop"); if (alwaysOnTop && !window) SetAlwaysOnTop(this, true); if (window) setWindowTitle(title); show(); if (source) obs_source_inc_showing(source); if (!window) { QAction *action = new QAction(this); action->setShortcut(Qt::Key_Escape); addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(EscapeTriggered())); } savedMonitor = monitor; isWindow = window; }
void CNoteDlg::SetTopMost() { // If the flag is set to true then place the dialog above all windows, // if it's not then do the opposite. // Reset the flag. if (GetAlwaysOnTop()) { SetWindowPos(HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); SetAlwaysOnTop(false); // Reset the button's internal state m_wndBtnPin.m_fPressed = 0; } else { SetWindowPos(HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); SetAlwaysOnTop(true); // Reset the button's internal state m_wndBtnPin.m_fPressed = 1; } }
void EEditSelectEditAnchor::Select(const csString & currName, EEditInputboxManager::iSelectEditAnchor * callback, const csVector2 & pos) { // move to given coordinate (probable mouse position) MoveTo((int)pos.x, (int)pos.y); // set default value newName->SetText(currName); // set the new callback delete selectCallback; selectCallback = callback; // show the widget Show(); SetAlwaysOnTop(true); }
bool pawsControlWindow::PostSetup() { SetAlwaysOnTop(true); AddWindow( "InventoryWindow" , "InventoryButton" ); AddWindow( "ConfigWindow" , "OptionsButton" ); AddWindow( "SpellBookWindow" , "SpellBookButton" ); AddWindow( "AttackBookWindow" , "AttackButton" ); AddWindow( "InfoWindow" , "InfoButton" ); AddWindow( "HelpWindow" , "HelpButton" ); AddWindow( "ShortcutMenu" , "ShortcutButton" ); AddWindow( "BuddyWindow" , "BuddyButton" ); AddWindow( "GroupWindow" , "GroupButton" ); AddWindow( "PetitionWindow" , "PetitionButton" ); AddWindow( "ChatWindow" , "ChatButton" ); AddWindow( "SkillWindow" , "SkillsButton" ); AddWindow( "QuestNotebook" , "QuestButton" ); AddWindow( "GuildWindow" , "GuildButton" ); AddWindow( "ActiveMagicWindow" , "ActiveMagicButton" ); keyboard = csQueryRegistry<iKeyboardDriver> (PawsManager::GetSingleton().GetObjectRegistry()); //The quit button is a bit special //We need to manualy register it QuitIcon = new Icon; QuitIcon->window = NULL; QuitIcon->theirButton = (pawsButton*)FindWidget("QuitButton"); QuitIcon->orgRes = QuitIcon->theirButton->GetBackground(); QuitIcon->IsActive = false; QuitIcon->IsOver = false; buttons.Push(QuitIcon); csRef<iConfigManager> file = psengine->GetConfig(); int loadStyle = file->GetInt("PlaneShift.GUI.ControlWindow.CurrentStyle", 1); for (int i=0; i < loadStyle; i++) NextStyle(); // Switch to saved style buttonUp = FindWidget("ShowButtonUp"); buttonDown = FindWidget("ShowButtonDown"); return true; }
void ezQtMainWindow::on_ActionAlwaysOnTop_triggered() { SetAlwaysOnTop(Always); }
void ezQtMainWindow::on_ActionOnTopWhenConnected_triggered() { SetAlwaysOnTop(WhenConnected); }
void ezQtMainWindow::on_ActionNeverOnTop_triggered() { SetAlwaysOnTop(Never); }
OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_, int monitor, QString title, ProjectorType type_) : OBSQTDisplay (widget, Qt::Window), source (source_), removedSignal (obs_source_get_signal_handler(source), "remove", OBSSourceRemoved, this) { projectorTitle = std::move(title); savedMonitor = monitor; isWindow = savedMonitor < 0; type = type_; if (isWindow) { setWindowIcon(QIcon::fromTheme("obs", QIcon(":/res/images/obs.png"))); UpdateProjectorTitle(projectorTitle); windowedProjectors.push_back(this); resize(480, 270); } else { setWindowFlags(Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); QScreen *screen = QGuiApplication::screens()[savedMonitor]; setGeometry(screen->geometry()); QAction *action = new QAction(this); action->setShortcut(Qt::Key_Escape); addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(EscapeTriggered())); } SetAlwaysOnTop(this, config_get_bool(GetGlobalConfig(), "BasicWindow", "ProjectorAlwaysOnTop")); setAttribute(Qt::WA_DeleteOnClose, true); //disable application quit when last window closed setAttribute(Qt::WA_QuitOnClose, false); installEventFilter(CreateShortcutFilter()); auto addDrawCallback = [this] () { bool isMultiview = type == ProjectorType::Multiview; obs_display_add_draw_callback(GetDisplay(), isMultiview ? OBSRenderMultiview : OBSRender, this); obs_display_set_background_color(GetDisplay(), 0x000000); }; connect(this, &OBSQTDisplay::DisplayCreated, addDrawCallback); bool hideCursor = config_get_bool(GetGlobalConfig(), "BasicWindow", "HideProjectorCursor"); if (hideCursor && !isWindow) { QPixmap empty(16, 16); empty.fill(Qt::transparent); setCursor(QCursor(empty)); } if (type == ProjectorType::Multiview) { obs_enter_graphics(); // All essential action should be placed inside this area gs_render_start(true); gs_vertex2f(actionSafePercentage, actionSafePercentage); gs_vertex2f(actionSafePercentage, 1 - actionSafePercentage); gs_vertex2f(1 - actionSafePercentage, 1 - actionSafePercentage); gs_vertex2f(1 - actionSafePercentage, actionSafePercentage); gs_vertex2f(actionSafePercentage, actionSafePercentage); actionSafeMargin = gs_render_save(); // All graphics should be placed inside this area gs_render_start(true); gs_vertex2f(graphicsSafePercentage, graphicsSafePercentage); gs_vertex2f(graphicsSafePercentage, 1 - graphicsSafePercentage); gs_vertex2f(1 - graphicsSafePercentage, 1 - graphicsSafePercentage); gs_vertex2f(1 - graphicsSafePercentage, graphicsSafePercentage); gs_vertex2f(graphicsSafePercentage, graphicsSafePercentage); graphicsSafeMargin = gs_render_save(); // 4:3 safe area for widescreen gs_render_start(true); gs_vertex2f(fourByThreeSafePercentage, graphicsSafePercentage); gs_vertex2f(1 - fourByThreeSafePercentage, graphicsSafePercentage); gs_vertex2f(1 - fourByThreeSafePercentage, 1 - graphicsSafePercentage); gs_vertex2f(fourByThreeSafePercentage, 1 - graphicsSafePercentage); gs_vertex2f(fourByThreeSafePercentage, graphicsSafePercentage); fourByThreeSafeMargin = gs_render_save(); gs_render_start(true); gs_vertex2f(0.0f, 0.5f); gs_vertex2f(lineLength, 0.5f); leftLine = gs_render_save(); gs_render_start(true); gs_vertex2f(0.5f, 0.0f); gs_vertex2f(0.5f, lineLength); topLine = gs_render_save(); gs_render_start(true); gs_vertex2f(1.0f, 0.5f); gs_vertex2f(1 - lineLength, 0.5f); rightLine = gs_render_save(); obs_leave_graphics(); solid = obs_get_base_effect(OBS_EFFECT_SOLID); color = gs_effect_get_param_by_name(solid, "color"); UpdateMultiview(); multiviewProjectors.push_back(this); } App()->IncrementSleepInhibition(); if (source) obs_source_inc_showing(source); ready = true; show(); // We need it here to allow keyboard input in X11 to listen to Escape if (!isWindow) activateWindow(); }
//----------------------------------------------------------------------------- // class WidgetConfigWindow //----------------------------------------------------------------------------- WidgetConfigWindow::WidgetConfigWindow() { SetAlwaysOnTop(true); PawsManager::GetSingleton().SetCurrentFocusedWidget(this); configWidget = NULL; }