18 #ifdef CHECK_MEMORY_LEAKS
20 #endif // CHECK_MEMORY_LEAKS
25 FXString quoted = FXPath::enquote(link);
26 return (
size_t)ShellExecute(NULL,
"open", quoted.text(), NULL, NULL, SW_SHOW) > 32;
28 FXString ext = FXPath::extension(link);
30 if (comparecase(link.section(
':', 0),
"http") == 0 ||
31 comparecase(link.section(
':', 0),
"ftp") == 0 ||
32 comparecase(ext,
"htm") == 0 || comparecase(ext,
"html") == 0 ||
33 comparecase(ext,
"php") == 0 || comparecase(ext,
"asp") == 0) {
34 list =
"mozilla-firefox\tmozilla\tnetscape\tkonqueror\tdillo\tlynx";
35 }
else if (comparecase(ext,
"pdf") == 0) {
36 list =
"acroread\tkghostview\tgpdf\txpdf";
42 FXString path = FXSystem::getExecPath();
44 software = list.section(
"\t", index);
45 while (!software.empty()) {
46 software = FXPath::search(path, software);
47 if (software.length())
48 return system(FXString().format(
"%s \"%s\" >/dev/null 2>&1 & ",
49 software.text(), link.text()).text()) > 0 ? 0 : 1;
51 software = list.section(
"\t", index);
53 }
else if (FXStat::isExecutable(link)) {
54 return system((link +
" >/dev/null 2>&1 & ").text()) > 0 ? 0 : 1;
69 FXLinkLabel::
FXLinkLabel(FXComposite* p, const FXString& text, FXIcon* ic, FXuint opts, FXint x, FXint y, FXint w, FXint h, FXint pl, FXint pr, FXint pt, FXint pb) :
FXLabel(p, text, ic, opts, x, y, w, h, pl, pr, pt, pb) {
70 setDefaultCursor(getApp()->getDefaultCursor(DEF_HAND_CURSOR));
71 setTextColor(FXRGB(0, 0, 255));
75 getApp()->removeTimeout(
this,
ID_TIMER);
79 FXString link = getTipText();
81 getApp()->beginWaitCursor();
83 getApp()->addTimeout(
this,
ID_TIMER, 2000);
85 getApp()->endWaitCursor();
93 getApp()->endWaitCursor();
FXint fxexecute(FXString link)
virtual ~FXLinkLabel()
Destructor.
long onTimer(FXObject *, FXSelector, void *)
FXDEFMAP(FXLinkLabel) FXLinkLabelMap[]
long onLeftBtnPress(FXObject *, FXSelector, void *)