a0d4ba8c9a11eda4826638fd27a1bb8d510fe63a
[platform/core/uifw/dali-adaptor.git] / adaptors / tizen / internal / command-line-options.h
1 #ifndef __DALI_INTERNAL_COMMAND_LINE_OPTIONS_H__
2 #define __DALI_INTERNAL_COMMAND_LINE_OPTIONS_H__
3
4 //
5 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
6 //
7 // Licensed under the Flora License, Version 1.0 (the License);
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //     http://floralicense.org/license/
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an AS IS BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19
20 // EXTERNAL INCLUDES
21 #include <string>
22
23 namespace Dali
24 {
25
26 namespace Internal
27 {
28
29 namespace Adaptor
30 {
31
32 /**
33  * Parses the passed command line arguments and sets the values stored within this
34  * class appropriately.
35  *
36  * The following options are supported:
37  *
38  * @code
39  *     --no-vsync       Disable VSync on Render
40  *  -w|--width          Stage Width
41  *  -h|--height         Stage Height
42  *  -d|--dpi            Emulated DPI
43  *     --help           Help
44  * @endcode
45  *
46  * When the above options are found, they are stripped from argv, and argc is updated appropriately.
47  */
48 struct CommandLineOptions
49 {
50 public:
51
52   /**
53    * Constructor
54    * @param[in,out]  argc  The number of arguments
55    * @param[in,out]  argv  The argument list
56    * @note Supported options are stripped from argv, and argc is updated appropriately.
57    */
58   CommandLineOptions(int *argc, char **argv[]);
59
60   /**
61    * Destructor
62    */
63   ~CommandLineOptions();
64
65 public: // Command line parsed values
66
67   int noVSyncOnRender; ///< If 1, then the user does not want VSync on Render
68   int stageWidth; ///< The width of the stage required.  0 if not set.
69   int stageHeight; ///< The height of the stage required.   0 if not set.
70   std::string stageDPI; ///< DPI stored as hxv, where h is horizontal DPI and v is vertical DPI
71 };
72
73 } // namespace Adaptor
74
75 } // namespace Internal
76
77 } // namespace Dali
78
79 #endif // __DALI_INTERNAL_COMMAND_LINE_OPTIONS_H__