Roxen.git
/
server
/
modules
/
graphics
/
gbutton.pike
version
»
Context lines:
10
20
40
80
file
none
3
Roxen.git/server/modules/graphics/gbutton.pike:18:
// icon-data -- inline icon data // align -- left|center|right text alignment // align-icon -- left|center-before|center-after|right icon alignment // valign-icon -- above|middle|below icon vertical alignment // >Button text</gbutton> // // Alignment restriction: when text alignment is either left or right, icons // must also be aligned left or right.
-
constant cvs_version = "$Id: gbutton.pike,v 1.
86
2001/
07
/
20
13
:
05
:
59
jhs
Exp $";
+
constant cvs_version = "$Id: gbutton.pike,v 1.
87
2001/
08
/
03
12
:
06
:
22
jonasw
Exp $";
constant thread_safe = 1; #include <module.h> inherit "module"; roxen.ImageCache button_cache; int do_ext; constant module_type = MODULE_TAG; constant module_name = "Graphics: GButton";
Roxen.git/server/modules/graphics/gbutton.pike:690:
// 2. Check str[-4] for '.', consider .jpeg .tiff etc. // // However, . is not a valid character in the ID, so just cutting at // the first one works. return button_cache->http_file_answer( (f/".")[0], id ); } mapping __stat_cache = ([ ]); int get_file_stat( string f, RequestID id ) {
-
if(
__stat_cache[ f ] )
-
return __stat_cache[ f ]
;
+
int
res
;
-
+
// -1 is used to cache negative results
+
if( __stat_cache[ f ] ) {
+
res = __stat_cache[f];
+
return (res > 0) && res;
+
}
+
call_out( m_delete, 10, __stat_cache, f );
-
return
__stat_cache[ f ] = (id->conf->stat_file( f,id )
+
res
=
__stat_cache[ f ] = (id->conf->stat_file( f,id )
|| file_stat( f )
-
|| ({ 0,0,0,0 }))[ST_MTIME];
+
|| ({ 0,0,0,0 }))[ST_MTIME]
|| -1
;
+
return (res > 0) && res;
} class ButtonFrame { inherit RXML.Frame; array mk_url(RequestID id) { // int t = gethrtime(); string fi = (args["frame-image"] || id->misc->defines["gbutton-frame-image"]);