From 7bc1e838337bc5d23cdb479a2e956be0886dfcc9 Mon Sep 17 00:00:00 2001 From: Eugeni Dodonov Date: Wed, 7 Jan 2009 22:58:54 +0000 Subject: Better option handling and embedding support. --- src/msec/msec.py | 2 +- src/msec/msecgui.py | 26 ++++++++++++++++++++------ src/msec/msecperms.py | 2 +- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/msec/msec.py b/src/msec/msec.py index a5ac4e0..9a6bfc4 100755 --- a/src/msec/msec.py +++ b/src/msec/msec.py @@ -63,7 +63,7 @@ if __name__ == "__main__": # parse command line try: - opt, args = getopt.getopt(sys.argv[1:], 'hl:f:dp', ['help', 'list', 'force', 'debug', 'pretend']) + opt, args = getopt.getopt(sys.argv[1:], 'hl:f:dp', ['help', 'list=', 'force=', 'debug', 'pretend']) except getopt.error: usage() sys.exit(1) diff --git a/src/msec/msecgui.py b/src/msec/msecgui.py index d6d358c..93fbab8 100755 --- a/src/msec/msecgui.py +++ b/src/msec/msecgui.py @@ -113,7 +113,7 @@ class MsecGui: (COLUMN_PATH, COLUMN_USER, COLUMN_GROUP, COLUMN_PERM, COLUMN_FORCE) = range(5) (COLUMN_APP, COLUMN_DESCR, COLUMN_AUTH) = range(3) - def __init__(self, log, msec, perms, auth, config, permconfig, authconfig): + def __init__(self, log, msec, perms, auth, config, permconfig, authconfig, embed=None): """Initializes gui""" self.log = log self.msec = msec @@ -134,8 +134,13 @@ class MsecGui: for opt in authconfig.list_options(): self.oldauth[opt] = authconfig.get(opt) - self.window = gtk.Window() - self.window.set_default_size(640, 480) + if embed: + # embedding in MCC + self.window = gtk.Plug(embed) + else: + # running standalone + self.window = gtk.Window() + self.window.set_default_size(640, 480) self.window.connect('destroy', self.quit) # are we enforcing a level @@ -214,7 +219,7 @@ class MsecGui: # creating preview window dialog = gtk.Dialog(_("Preview changes"), - self.window, 0, + self.window, gtk.DIALOG_MODAL, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK) ) @@ -934,15 +939,18 @@ def usage(): Arguments to msecgui: -h, --help displays this helpful message. -d enable debugging messages. + -e, --embedded embed in MCC. """ % version # }}} if __name__ == "__main__": log_level = logging.INFO + PlugWindowID = None # parse command line + print sys.argv try: - opt, args = getopt.getopt(sys.argv[1:], 'hd', ['help', 'debug']) + opt, args = getopt.getopt(sys.argv[1:], 'hde:', ['help', 'debug', 'embedded=']) except getopt.error: usage() sys.exit(1) @@ -954,6 +962,12 @@ if __name__ == "__main__": # list elif o[0] == '-d' or o[0] == '--debug': log_level = logging.DEBUG + elif o[0] == '-e' or o[0] == '--embedded': + try: + PlugWindowID = long(o[1]) + except: + print >>sys.stderr, "Error: bad master window XID (%s)!" % o[1] + sys.exit(1) # configuring logging log = Log(interactive=True, log_syslog=False, log_file=True, log_level=log_level, log_path=config.SECURITYLOG) @@ -980,6 +994,6 @@ if __name__ == "__main__": log.info("Starting gui..") - gui = MsecGui(log, msec, perms, auth, msec_config, perm_conf, auth_conf) + gui = MsecGui(log, msec, perms, auth, msec_config, perm_conf, auth_conf, embed=PlugWindowID) gtk.main() diff --git a/src/msec/msecperms.py b/src/msec/msecperms.py index 3cba97e..22fda80 100755 --- a/src/msec/msecperms.py +++ b/src/msec/msecperms.py @@ -68,7 +68,7 @@ if __name__ == "__main__": # parse command line try: - opt, args = getopt.getopt(sys.argv[1:], 'hel:f:dp', ['help', 'enforce', 'list', 'force', 'debug', 'pretend']) + opt, args = getopt.getopt(sys.argv[1:], 'hel:f:dp', ['help', 'enforce', 'list=', 'force=', 'debug', 'pretend']) except getopt.error: usage() sys.exit(1) -- cgit v1.2.1