diff options
Diffstat (limited to 'vmchooser/main.cxx')
-rw-r--r-- | vmchooser/main.cxx | 156 |
1 files changed, 89 insertions, 67 deletions
diff --git a/vmchooser/main.cxx b/vmchooser/main.cxx index d33468a..531dfc9 100644 --- a/vmchooser/main.cxx +++ b/vmchooser/main.cxx @@ -10,87 +10,109 @@ using namespace std; using namespace fltk; + /** * MAIN * + * ---------------------- + * + * main procedure of vmchooser + * + * + * */ int main(int argc, char** argv) { - if (argc > 1 ) - { - if (strcmp(argv[1],"-h") | strcmp(argv[1], "--help") ) - { - /* print help */ - printf("SessionChooser \n"); - printf("\t{-p |--path=}[path to xml files]\n"); - printf("\t{-g |--group=}[group name]\n"); - printf("\t{-h |--help}[ as first parameter - prints help ]\n"); - exit(0); + if (argc > 1 && !(strcmp(argv[1],"-h") | strcmp(argv[1], "--help")) ) { + /* print help */ + printf("SessionChooser \n"); + printf("\t{-p |--path=}[path to vmware (.xml) files]\n"); + printf("\t{-l |--lpath=}[path to linux session (.desktop) files]\n"); + printf("\t{-g |--group=}[group name]\n"); + printf("\t{-h |--help}[ as first parameter - prints help ]\n"); + exit(0); } - } - - char* xmlpath = NULL; - char* slxgroup = NULL; - for (int i=0; i<argc; i++) - { - /* Get path parameter - path to XML files */ - if (strstr(argv[i],"-p") != NULL) - { - i++; - xmlpath = argv[i]; - } - if (strstr(argv[i],"--path=") != NULL) - { - char* temp = strpbrk("=", argv[i] ); - xmlpath = (temp ++); + char* xmlpath = NULL; + char* slxgroup = NULL; + char* lsesspath = NULL; + + for (int i=0; i<argc; i++) { + /* Get path parameter - path to XML files */ + if (strstr(argv[i],"-p") != NULL) { + i++; + xmlpath = argv[i]; + } + if (strstr(argv[i],"--path=") != NULL) { + char* temp = strpbrk("=", argv[i] ); + xmlpath = (temp ++); + } + + /* Get path for linux sessions */ + if (strstr(argv[i],"-l") != NULL) { + i++; + lsesspath = argv[i]; + } + if (strstr(argv[i],"--lpath=") != NULL) { + char* temp = strpbrk("=", argv[i] ); + lsesspath = (temp ++); + } + + /* Get group parameter - SLXGroup */ + if (strstr(argv[i],"-g") != NULL) { + i++; + slxgroup = argv[i]; + } + if (strstr(argv[i],"--group=") != NULL) { + char* temp = strpbrk("=", argv[i] ); + slxgroup =( temp ++ ); + } } - /* Get group parameter - SLXGroup */ - if (strstr(argv[i],"-g") != NULL) - { - i++; - slxgroup = argv[i]; + if (xmlpath == NULL) { + xmlpath="../../../../../../../session-choosers/xml/"; + //xmlpath = "/var/lib/vmware/"; } - if (strstr(argv[i],"--group=") != NULL) - { - char* temp = strpbrk("=", argv[i] ); - slxgroup =( temp ++ ); + if (slxgroup == NULL) { + slxgroup = "default"; + } + if (lsesspath == NULL) { + lsesspath = "/usr/share/xsessions/"; } - } - - if (xmlpath == NULL) - { - xmlpath = "xmltest"; - } - if (slxgroup == NULL) - { - slxgroup = "default"; - } - - - /* read xml files */ - DataEntry** sessions = NULL; - if (xmlpath != NULL) - { - sessions = readXmlDir(xmlpath); - } - else - { - fprintf(stderr,"Please give a path to xml directory for session images!"); - exit(1); - } - - SWindow& win = *SWindow::getInstance(); - - if (sessions != NULL) - { - win.set_entries(sessions); - } - win.show(argc,argv); - return run(); + /* read xml files */ + DataEntry** sessions = NULL; + DataEntry** lsessions = NULL; + if (xmlpath != NULL) { + sessions = readXmlDir(xmlpath); + } else { + fprintf(stderr,"Please give a path to xml directory for session images!"); + exit(1); + } + lsessions = readLinSess(lsesspath); + + SWindow& win = *SWindow::getInstance(); + + if(lsessions != NULL) { + win.set_lin_entries(lsessions, slxgroup); + } + if (sessions != NULL) { + win.set_entries(sessions, slxgroup); + } + + //cout << win.pname << endl; + + + win.unfold_entries(); + win.show(argc,argv); + win.border(false); + + bool retval = run(); + + win.free_entries(); + + return retval; } |