FXLinkLabel.cpp File Reference

#include <config.h>
#include "FXLinkLabel.h"

Go to the source code of this file.

Functions

 FXDEFMAP (FXLinkLabel) FXLinkLabelMap[]
FXint fxexecute (FXString link)
 FXIMPLEMENT (FXLinkLabel, FXLabel, FXLinkLabelMap, ARRAYNUMBER(FXLinkLabelMap)) FXLinkLabel


Function Documentation

FXDEFMAP ( FXLinkLabel   ) 

FXint fxexecute ( FXString  link  ) 

Definition at line 21 of file FXLinkLabel.cpp.

Referenced by FXLinkLabel::onLeftBtnPress().

00021                                {
00022 #ifdef WIN32
00023     FXString quoted = FXPath::enquote(link);
00024     FXint ret =
00025         (int)ShellExecute(NULL,"open",quoted.text(),NULL,NULL,SW_SHOW) > 32;
00026     return ret;
00027 #else
00028     FXString ext = FXPath::extension(link);
00029     FXString list;
00030     if (comparecase(link.section(':',0), "http")==0 ||
00031             comparecase(link.section(':',0), "ftp")==0 ||
00032             comparecase(ext, "htm")==0 || comparecase(ext, "html")==0 ||
00033             comparecase(ext, "php")==0 || comparecase(ext, "asp")==0)
00034         list = "mozilla-firefox\tmozilla\tnetscape\tkonqueror\tdillo\tlynx";
00035     else if (comparecase(ext, "pdf")==0)
00036         list = "acroread\tkghostview\tgpdf\txpdf";
00037 
00038     if (list.length()) {
00039         FXString software;
00040         FXint index=0;
00041         FXString path = FXSystem::getExecPath();
00042 
00043         software = list.section("\t",index);
00044         while (!software.empty()) {
00045             software = FXPath::search(path, software);
00046             if (software.length())
00047                 return system(FXString().format("%s \"%s\" >/dev/null 2>&1 & ",
00048                                                 software.text(),link.text()).text())>0?0:1;
00049             index++;
00050             software = list.section("\t",index);
00051         }
00052     } else if (FXStat::isExecutable(link))
00053         return system((link + " >/dev/null 2>&1 & ").text()) > 0 ? 0:1;
00054     return 0;
00055 #endif
00056 }

FXIMPLEMENT ( FXLinkLabel  ,
FXLabel  ,
FXLinkLabelMap  ,
ARRAYNUMBER(FXLinkLabelMap)   
)

Definition at line 64 of file FXLinkLabel.cpp.

00067                                                                                                                                                        :FXLabel(p,text,ic,opts,x,y,w,h,pl,pr,pt,pb) {
00068     setDefaultCursor(getApp()->getDefaultCursor(DEF_HAND_CURSOR));
00069     setTextColor(FXRGB(0,0,255));
00070 }


Generated on Wed May 5 00:06:37 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6