~michael-sheldon/ubuntu/utopic/maliit-framework/fix-orientation-updates

« back to all changes in this revision

Viewing changes to src/mimserveroptions.cpp

  • Committer: Package Import Robot
  • Author(s): Ricardo Salveti de Araujo, Sergio Schvezov, Ricardo Salveti de Araujo
  • Date: 2013-07-23 19:47:04 UTC
  • mfrom: (1.1.2) (1.2.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130723194704-1lsy1kmlda069cea
Tags: 0.99.0+git20130615+97e8335-0ubuntu1
[ Sergio Schvezov ]
* New build from HEAD 97e8335.
* Packaging import from lp:phablet-extras/maliit-framework.

[ Ricardo Salveti de Araujo ]
* debian/control: adding vcs and fixing dependencies
* General package cleanup

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
 
25
25
namespace {
26
26
 
27
 
#if defined(Q_WS_X11)
28
 
    struct CommandLineXParameter
29
 
    {
30
 
        const char * name;
31
 
        const char * description;
32
 
        bool MImServerXOptions::*value;
33
 
    };
34
 
 
35
 
    CommandLineXParameter AvailableParameters[] = {
36
 
        { "-manual-redirection",   "Enable manual redirection", &MImServerXOptions::manualRedirection },
37
 
        { "-bypass-wm-hint",       "Bypass window manager",     &MImServerXOptions::bypassWMHint },
38
 
        { "-use-self-composition", "Enable self composition",   &MImServerXOptions::selfComposited },
39
 
        { "-unconditional-show",   "Always use show() for server window regardless "
40
 
                                   "of current state of server and remote windows",
41
 
                                   &MImServerXOptions::unconditionalShow }
42
 
    };
43
 
#endif
44
 
 
45
27
    struct CommandLineParameter {
46
28
        const char * name;
47
29
        const char * description;
68
50
        { "-qdebug",         false },
69
51
        { "-software",       false },
70
52
        { "-qws",            false },
71
 
        { "-sync",           false },
72
 
        // Next parameter is used by Harmattan and we should silently ingore it
73
 
        { "-remote-theme",   false }
 
53
        { "-sync",           false }
74
54
    };
75
55
 
76
56
    const char * programName = "meego-im-uiserver";
148
128
        MImServerCommonOptions *storage;
149
129
    };
150
130
 
151
 
#if defined(Q_WS_X11)
152
 
    /*!
153
 
     * \brief Parser of command line parameters which are applicable if
154
 
     * input method server works with X11.
155
 
     */
156
 
    struct MImServerXOptionsParser : public MImServerOptionsParserBase
157
 
    {
158
 
        /*! \brief Construct new instance.
159
 
         * Object should be created when application starts and should stay alive until moment
160
 
         * when application will exit, so it is recommnded to create it in main().
161
 
         * \note It does not makes sense tp create more than one object of this class.
162
 
         */
163
 
        MImServerXOptionsParser(MImServerXOptions *options);
164
 
 
165
 
        //! \reimp
166
 
        virtual ParsingResult parseParameter(const char * parameter,
167
 
                                             const char * next,
168
 
                                             int *argumentCount);
169
 
        virtual void printAvailableOptions(const char *format);
170
 
        //! \reimp_end
171
 
 
172
 
    private:
173
 
        MImServerXOptions *storage;
174
 
    };
175
 
#endif
176
 
 
177
131
    /*!
178
132
     * \brief Parser of command line parameters for the server<->input context connection
179
133
     */
433
387
{
434
388
    unregisterParser(this);
435
389
}
436
 
 
437
 
#if defined(Q_WS_X11)
438
 
///////////////
439
 
// parser for options related to X windows system
440
 
MImServerXOptionsParser::MImServerXOptionsParser(MImServerXOptions *options)
441
 
    : MImServerOptionsParserBase(options),
442
 
    storage(options)
443
 
{
444
 
}
445
 
 
446
 
MImServerOptionsParserBase::ParsingResult
447
 
MImServerXOptionsParser::parseParameter(const char *parameter,
448
 
                                        const char *,
449
 
                                        int *argumentCount)
450
 
{
451
 
    const int count = sizeof(AvailableParameters) / sizeof(AvailableParameters[0]);
452
 
    ParsingResult result = Invalid;
453
 
 
454
 
    *argumentCount = 0;
455
 
 
456
 
    for (int i = 0; i < count; ++i) {
457
 
        if (!strcmp(parameter, AvailableParameters[i].name)) {
458
 
            if (AvailableParameters[i].value) {
459
 
                storage->*AvailableParameters[i].value = true;
460
 
            }
461
 
            result = Ok;
462
 
            break;
463
 
        }
464
 
    }
465
 
 
466
 
    return result;
467
 
}
468
 
 
469
 
void MImServerXOptionsParser::printAvailableOptions(const char *format)
470
 
{
471
 
    const int count = sizeof(AvailableParameters) / sizeof(AvailableParameters[0]);
472
 
 
473
 
    for (int i = 0; i < count; ++i) {
474
 
        if (AvailableParameters[i].description) {
475
 
            fprintf(stderr, format, AvailableParameters[i].name,
476
 
                    AvailableParameters[i].description);
477
 
        }
478
 
    }
479
 
}
480
 
 
481
 
MImServerXOptions::MImServerXOptions()
482
 
    : selfComposited(false),
483
 
    manualRedirection(false),
484
 
    bypassWMHint(false),
485
 
    unconditionalShow(false)
486
 
{
487
 
    const ParserBasePtr p(new MImServerXOptionsParser(this));
488
 
    parsers.append(p);
489
 
}
490
 
 
491
 
MImServerXOptions::~MImServerXOptions()
492
 
{
493
 
    unregisterParser(this);
494
 
}
495
 
#endif