1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef _SV_SALSYS_HXX 25*b1cdbd2cSJim Jagielski #define _SV_SALSYS_HXX 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include <tools/string.hxx> 28*b1cdbd2cSJim Jagielski #include <tools/gen.hxx> 29*b1cdbd2cSJim Jagielski #include <vcl/dllapi.h> 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielski /* Button combinations for ShowNativeMessageBox 33*b1cdbd2cSJim Jagielski */ 34*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTNCOMBI_OK = 0; 35*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTNCOMBI_OK_CANCEL = 1; 36*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTNCOMBI_ABORT_RETRY_IGNORE = 2; 37*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTNCOMBI_YES_NO_CANCEL = 3; 38*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTNCOMBI_YES_NO = 4; 39*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTNCOMBI_RETRY_CANCEL = 5; 40*b1cdbd2cSJim Jagielski 41*b1cdbd2cSJim Jagielski /* Button identifier for ShowNativeMessageBox 42*b1cdbd2cSJim Jagielski */ 43*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_OK = 1; 44*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_CANCEL = 2; 45*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_ABORT = 3; 46*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_RETRY = 4; 47*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_IGNORE = 5; 48*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_YES = 6; 49*b1cdbd2cSJim Jagielski const int SALSYSTEM_SHOWNATIVEMSGBOX_BTN_NO = 7; 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski // ------------- 54*b1cdbd2cSJim Jagielski // - SalSystem - 55*b1cdbd2cSJim Jagielski // ------------- 56*b1cdbd2cSJim Jagielski 57*b1cdbd2cSJim Jagielski class VCL_PLUGIN_PUBLIC SalSystem 58*b1cdbd2cSJim Jagielski { 59*b1cdbd2cSJim Jagielski public: SalSystem()60*b1cdbd2cSJim Jagielski SalSystem() {} 61*b1cdbd2cSJim Jagielski virtual ~SalSystem(); 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski // get info about the display 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski /* Gets the number of active screens attached to the display 66*b1cdbd2cSJim Jagielski 67*b1cdbd2cSJim Jagielski @returns the number of active screens 68*b1cdbd2cSJim Jagielski */ 69*b1cdbd2cSJim Jagielski virtual unsigned int GetDisplayScreenCount() = 0; 70*b1cdbd2cSJim Jagielski /* Queries whether multiple screens are truly separate 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski @returns true if screens are distinct and windows cannot 73*b1cdbd2cSJim Jagielski be moved between them or span multiple of them 74*b1cdbd2cSJim Jagielski false if screens form up one big display 75*b1cdbd2cSJim Jagielski */ 76*b1cdbd2cSJim Jagielski virtual bool IsMultiDisplay() = 0; 77*b1cdbd2cSJim Jagielski /* Queries the default screen number. The default screen is the 78*b1cdbd2cSJim Jagielski screen on which windows will appear if no special positioning 79*b1cdbd2cSJim Jagielski is made. 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski @returns the default screen number 82*b1cdbd2cSJim Jagielski */ 83*b1cdbd2cSJim Jagielski virtual unsigned int GetDefaultDisplayNumber() = 0; 84*b1cdbd2cSJim Jagielski /* Gets relative position and size of the screens attached to the display 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski @param nScreen 87*b1cdbd2cSJim Jagielski The screen number to be queried 88*b1cdbd2cSJim Jagielski 89*b1cdbd2cSJim Jagielski @returns position: (0,0) in case of IsMultiscreen() == true 90*b1cdbd2cSJim Jagielski else position relative to whole display 91*b1cdbd2cSJim Jagielski size: size of the screen 92*b1cdbd2cSJim Jagielski */ 93*b1cdbd2cSJim Jagielski virtual Rectangle GetDisplayScreenPosSizePixel( unsigned int nScreen ) = 0; 94*b1cdbd2cSJim Jagielski /* Gets position and size of the work area of a screen attached to the display 95*b1cdbd2cSJim Jagielski 96*b1cdbd2cSJim Jagielski @param nScreen 97*b1cdbd2cSJim Jagielski The screen number to be queried 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielski @returns position and size relative to the scree 100*b1cdbd2cSJim Jagielski */ 101*b1cdbd2cSJim Jagielski virtual Rectangle GetDisplayWorkAreaPosSizePixel( unsigned int nScreen ) = 0; 102*b1cdbd2cSJim Jagielski /* Gets the name of a screen 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski @param nScreen 105*b1cdbd2cSJim Jagielski The screen number to be queried 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski @returns the name of the screen 108*b1cdbd2cSJim Jagielski */ 109*b1cdbd2cSJim Jagielski virtual rtl::OUString GetScreenName( unsigned int nScreen ) = 0; 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski /* Shows a native message box with the specified title, message and button 112*b1cdbd2cSJim Jagielski combination. 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski @param rTitle 115*b1cdbd2cSJim Jagielski The title to be shown by the dialog box. 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski @param rMessage 118*b1cdbd2cSJim Jagielski The message to be shown by the dialog box. 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski @param nButtonCombination 121*b1cdbd2cSJim Jagielski Specify which button combination the message box should display. 122*b1cdbd2cSJim Jagielski See button combinations above. 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski @param nDefaultButton 125*b1cdbd2cSJim Jagielski Specifies which button has the focus initially. 126*b1cdbd2cSJim Jagielski See button identifiers above. 127*b1cdbd2cSJim Jagielski The effect of specifying a button that doesn't belong 128*b1cdbd2cSJim Jagielski to the specified button combination is undefined. 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski @returns the identifier of the button that was pressed by the user. 131*b1cdbd2cSJim Jagielski See button identifier above. If the function fails the 132*b1cdbd2cSJim Jagielski return value is 0. 133*b1cdbd2cSJim Jagielski */ 134*b1cdbd2cSJim Jagielski virtual int ShowNativeMessageBox( const String& rTitle, 135*b1cdbd2cSJim Jagielski const String& rMessage, 136*b1cdbd2cSJim Jagielski int nButtonCombination, 137*b1cdbd2cSJim Jagielski int nDefaultButton) = 0; 138*b1cdbd2cSJim Jagielski }; 139*b1cdbd2cSJim Jagielski 140*b1cdbd2cSJim Jagielski SalSystem* ImplGetSalSystem(); 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski #endif // _SV_SALSYS_HXX 143