Search Members Help

» Welcome Guest
[ Log In :: Register ]

Mini-ITX Boards Sale, Fanless BareBones Mini-ITX, Bootable 1G DSL USBs, 533MHz Fanless PC <-- SALE $200 each!
Get The Official Damn Small Linux Book. DSL Market , Great VPS hosting provided by Tektonic

[ Track this topic :: Email this topic :: Print this topic ]

reply to topic new topic new poll
Topic: XJIG.UCI not working (?)< Next Oldest | Next Newest >
Nigadoo Offline

Group: Members
Posts: 18
Joined: Sep. 2007
Posted: Jan. 31 2008,19:45 QUOTE


None of the icons for XJIG (on desktop for 3.x versions of DSL, and in MyDSL folder in 4.x versions of DSL), nor the MyDSL menu item for XJIG seem to do anything.

I can get XJIG started by executing it directly (had fun putting together that "Tina" pic), but would sure like to access the app with the Lua FLTK front-end.

Is XJIG.UCI supposed to work "out of the box" (if so, then is it broken?), or am I supposed to do some configuration first?

Thanks in advance.
Back to top
Profile PM 
mikshaw Offline

Group: Members
Posts: 4856
Joined: July 2004
Posted: Jan. 31 2008,19:54 QUOTE

It used to work out of the box, but that was when DSL used lua-fltk. That has been replaced with murgaLua, and I was too lazy to update the extension. I did do a port to murgaLua a long time ago, but it should be reworked a bit.

EDIT: I did a little work on it yesterday, and realized it *can* be used (outside of the read-only uci directory) without the bash wrapper if you do a little work on it. The first few lines after "DEFAULTS" are where you can set paths to the xjig and convert binaries and to the default image directory. Or you can change them by manually setting the environment variables XJIG, CONVERT, and IMG_DIR. That last one will probably need its variable name changed sometime in the's a little too generic.

Code Sample

-- xjig.flua
-- GUI frontend for xjig
-- mikshaw 2006
-- IMPORTANT: This script needs the bash wrapper for some variables.
--            It will still work, but only with gif images and only
--            if xjig is in your $PATH
-- Changelog, yyyy/mm/dd
--   2008/02/01: Code cleanup
--   2006/09/21: Port to MurgaLua
--   2006/03/29: Added a symlink check to the bash wrapper
--   2006/02/24: first release
-- TODO: Incorporate bash wrapper commands into this script

-- fallback in case the script is run without the wrapper
if not convert then convert = "no" end
if not img_dir then img_dir = os.getenv("HOME") end
if not xjig then xjig = "xjig" end
xjig_options = ""
temp_img = "/tmp/xjig_image.gif" -- used for non-gif images if convert is found
bh = 20        -- button height
ww = 345        -- window width
wh = bh*8        -- window height
col2 = ww/2+2

w = fltk:Fl_Double_Window(ww,wh, "xjig");

-- initial list of image files
files = fltk:Fl_Select_Browser(2,2,ww/2-4,wh-bh-4)
function files_cb()
if files:value() > 0 then
filename = img_dir.."/"..files:text(files:value())
-- name of chosen image
filename_display = fltk:Fl_Output(col2,wh-bh*2-4,ww/2-4,bh)

-- look for other images
b_browse = fltk:Fl_Button(2,wh-bh-2,ww/2-4,bh,"Browse...")
function b_browse_cb()
if filename then
old_filename = filename
filename = fltk.fl_file_chooser("Open a File","*.gif",img_dir.."/")
if not filename or filename == "" then
-- fall back to original filename if chooser is cancelled
filename = old_filename

b_start = fltk:Fl_Button(col2,wh-bh-2,ww/2-14,bh,"PLAY")
function b_start_cb()
if filename then
-- check to see if we can convert other image types to gif
if convert ~= "no" and not string.find(string.lower(filename),".gif",-4) then
execute(convert.." "..filename.." "..temp_img)
filename = temp_img
if filename and string.find(string.lower(filename),".gif",-4) then
-- build the execute string and run it
if nocrop:value() == 1 then xjig_options = "-no_crop " end
if shapes:value() == 1 then xjig_options = xjig_options.."-shapes " end
if noanim:value() == 1 then xjig_options = xjig_options.."-no_anim " end
if noflip:value() == 1 then xjig_options = xjig_options.."-side 0 " end
os.execute(xjig.." -ts "..ts:value().." "..xjig_options.." -file "..filename.." &>/dev/null")

controls_help = fltk:Fl_Button(ww-12,wh-bh-2,10,bh,"?")
-- command options
nocrop = fltk:Fl_Round_Button(col2,2,ww/2-4,bh,"don't crop")
shapes = fltk:Fl_Round_Button(col2,bh+2,ww/2-4,bh,"no background")
noanim = fltk:Fl_Round_Button(col2,bh*2+2,ww/2-4,bh,"no animation")
noflip = fltk:Fl_Round_Button(col2,bh*3+2,ww/2-4,bh,"no flipped pieces")
nocrop:tooltip("The image is usually automatically cropped, since many images are surrounded by frames or textual comments. If this is not desired you should disable this feature.")
shapes:tooltip("If the SHAPE-extension is supported by your display, you can use this option to let each puzzle tile appear in its own shaped window. It may be very slow to pan and zoom.")
noanim:tooltip("Turns off animation of rotation and flipping, in case the machine isn't fast enough to make it look nice.")
noflip:tooltip("Normally puzzle pieces are initially displayed with a random side up, so you have to figure out whether each piece needs to be flipped.")

ts = fltk:Fl_Value_Slider(col2,bh*4+4,ww/3-4,bh,"tile size")--;
ts:value(32); ts:step(8); ts:minimum(16); ts:maximum(128); ts:type(fltk.FL_HORIZONTAL); ts:align(fltk.FL_ALIGN_RIGHT);


controls = fltk:Fl_Window(ww,wh*1.5,"xjig controls")
con_text = fltk:Fl_Box(2,2,0,wh*1.5-4,
"click left:        rotate 90 degrees left\n"..
"click right:       rotate 90 degrees right\n"..
"click middle:      flip tile to backside\n"..
"drag left:         rotator drag\n"..
"   +middle:        pause rotator drag for straight drag\n"..
"drag middle:       straight drag\n"..
"   +left:          pause drag for a static rotation\n"..
"   +click left:    rotate 90 degrees left during drag\n"..
"   +click right:   rotate 90 degrees right during drag\n"..
"drag right:        same as drag middle\n"..
"CTRL+click left:   same as click middle\n\n"..
"Cursor Keys:       Pan View\n"..
"Page-Up or Add:    Zoom in\n"..
"Page-Down or Sub:  Zoom out\n"..
"Home:              Reset to original size\n"..
"End:               Set maximum zooming to view all tiles")--;

tempfile = os.tmpname()
if convert == "no" then
b_browse:label("Browse (*.gif only)")
img_types = "*.{gif,GIF}"
-- these are some common image can use the chooser to find others
img_types = "*.{gif,GIF,jpg,JPG,jpeg,JPEG,png,PNG,bmp,BMP,pict,PICT,p?m,P?M,xwd,XWD}"
-- build the initial list of files
os.execute("cd "..img_dir.." && ls "..img_types.." 2>/dev/null >"..tempfile)
if files:text(files.size) == "" then files:remove(files.size) end

Back to top
Profile PM WEB 
1 replies since Jan. 31 2008,19:45 < Next Oldest | Next Newest >

[ Track this topic :: Email this topic :: Print this topic ]

reply to topic new topic new poll
Quick Reply: XJIG.UCI not working (?)

Do you wish to enable your signature for this post?
Do you wish to enable emoticons for this post?
Track this topic
View All Emoticons
View iB Code