diff --git a/ChangeLog b/ChangeLog index 86ccce871..5df365367 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2007-09-30 David A. Capello + * src/commands/cmd_sprite_properties.c (command_execute_sprite_properties): Done. + + * src/dialogs/dfrlen.c: Removed (all in cmd_sprite_properties). + + * data/scripts/sprprop.lua: Removed. + * data/scripts/edit.lua: Removed. * src/commands/cmd_refresh.c (command_execute_refresh): Added. diff --git a/data/scripts/sprprop.lua b/data/scripts/sprprop.lua deleted file mode 100644 index fa7ce3282..000000000 --- a/data/scripts/sprprop.lua +++ /dev/null @@ -1,70 +0,0 @@ --- ase -- allegro-sprite-editor: the ultimate sprites factory --- Copyright (C) 2001-2005, 2007 by David A. Capello - -function GUI_SpriteProperties() - -- get current sprite - local sprite = current_sprite - if not sprite then return end - - -- load the window widget - local window = ji_load_widget("sprprop.jid", "sprite_properties") - if not window then return end - - -- update widgets values - do - local imgtype_text - - if sprite.imgtype == IMAGE_RGB then - imgtype_text = "RGB" - elseif sprite.imgtype == IMAGE_GRAYSCALE then - imgtype_text = "Grayscale" - elseif sprite.imgtype == IMAGE_INDEXED then - imgtype_text = "Indexed" - else - imgtype_text = "Unknown" - end - - jwidget_set_text(jwidget_find_name(window, "name"), sprite.filename) - jwidget_set_text(jwidget_find_name(window, "type"), imgtype_text) - jwidget_set_text(jwidget_find_name(window, "size"), - sprite.w .. "x" .. sprite.h) - jwidget_set_text(jwidget_find_name(window, "frames"), - tostring(sprite.frames)) - end - - jwindow_remap(window) - jwindow_center(window) - - while true do - load_window_pos(window, "SpriteProperties") - jwindow_open_fg(window) - save_window_pos(window, "SpriteProperties") - - local killer = jwindow_get_killer(window) - - if killer == jwidget_find_name(window, "ok") then - local filename = jwidget_get_text(jwidget_find_name(window, "name")) - local frames = tonumber(jwidget_get_text(jwidget_find_name(window, "frames"))) - - frames = MID(1, frames, 9999) - - -- does filename change? - if filename != sprite.filename then - sprite_set_filename(sprite, filename) - rebuild_sprite_list() - end - - sprite_set_frames(sprite, frames) - - -- update sprite in editors - GUI_Refresh(sprite) - break - elseif killer == jwidget_find_name(window, "speed") then - dialogs_frame_length(-1) - else - break - end - end - - jwidget_free(window) -end diff --git a/makefile.lst b/makefile.lst index ad988cf4f..524cb7589 100644 --- a/makefile.lst +++ b/makefile.lst @@ -83,7 +83,6 @@ ASE_SOURCES = \ src/core/modules.c \ src/dialogs/canvasze.c \ src/dialogs/colsel.c \ - src/dialogs/dfrlen.c \ src/dialogs/dmapgen.c \ src/dialogs/dpaledit.c \ src/dialogs/drawtext.c \ diff --git a/src/commands/cmd_sprite_properties.c b/src/commands/cmd_sprite_properties.c index a1f0ca3d2..e3e306ce8 100644 --- a/src/commands/cmd_sprite_properties.c +++ b/src/commands/cmd_sprite_properties.c @@ -20,14 +20,149 @@ #ifndef USE_PRECOMPILED_HEADER +#include + #include "jinete.h" -#include "core/app.h" +/* #include "core/app.h" */ +#include "modules/gui.h" #include "modules/sprites.h" +#include "raster/image.h" #include "raster/sprite.h" #endif +/* TODO remove this */ +void dialogs_frame_length(int sprite_frpos); + +bool command_enabled_sprite_properties(const char *argument) +{ + return current_sprite != NULL; +} + void command_execute_sprite_properties(const char *argument) { + JWidget window, killer, name, type, size, frames, speed, ok; + Sprite *sprite = current_sprite; + char *imgtype_text; + char buf[256]; + + /* load the window widget */ + window = load_widget("sprprop.jid", "sprite_properties"); + if (!window) + return; + + if (!get_widgets(window, + "name", &name, + "type", &type, + "size", &size, + "frames", &frames, + "speed", &speed, + "ok", &ok, NULL)) { + jwidget_free(window); + return; + } + + /* update widgets values */ + switch (sprite->imgtype) { + case IMAGE_RGB: + imgtype_text = "RGB"; + break; + case IMAGE_GRAYSCALE: + imgtype_text = "Grayscale"; + break; + case IMAGE_INDEXED: + imgtype_text = "Indexed"; + break; + default: + imgtype_text = "Unknown"; + break; + } + + jwidget_set_text(name, sprite->filename); + jwidget_set_text(type, imgtype_text); + usprintf(buf, "%dx%d", sprite->w, sprite->h); + jwidget_set_text(size, buf); + usprintf(buf, "%d", sprite->frames); + jwidget_set_text(frames, buf); + + jwindow_remap(window); + jwindow_center(window); + + for (;;) { + load_window_pos(window, "SpriteProperties"); + jwindow_open_fg(window); + save_window_pos(window, "SpriteProperties"); + + killer = jwindow_get_killer(window); + if (killer == ok) { + const char *filename = jwidget_get_text(name); + int nframes = ustrtol(jwidget_get_text(frames), NULL, 10); + + nframes = MID(1, nframes, 9999); + + /* does filename change? */ + if (filename != sprite->filename) { + sprite_set_filename(sprite, filename); + rebuild_sprite_list(); + } + + sprite_set_frames(sprite, nframes); + + /* update sprite in editors */ + GUI_Refresh(sprite); + break; + } + else if (killer == speed) { + dialogs_frame_length(-1); + } + else + break; + } + + jwidget_free(window); +} + +/* if sprite_frpos < 0, set the frame length of all frames */ +void dialogs_frame_length(int sprite_frpos) +{ + JWidget window, frpos, frlen, ok; + char buf[64]; + + window = load_widget("frlen.jid", "frame_duration"); + if (!window) + return; + + if (!get_widgets(window, + "frpos", &frpos, + "frlen", &frlen, + "ok", &ok, NULL)) { + jwidget_free(window); + return; + } + + if (sprite_frpos < 0) + strcpy(buf, "All"); + else + sprintf(buf, "%d", sprite_frpos); + jwidget_set_text(frpos, buf); + + sprintf(buf, "%d", sprite_get_frlen(current_sprite, current_sprite->frpos)); + jwidget_set_text(frlen, buf); + + jwindow_open_fg(window); + if (jwindow_get_killer(window) == ok) { + int num = strtol(jwidget_get_text(frlen), NULL, 10); + + if (sprite_frpos < 0) { + if (jalert("Warning" + "< -#include - -#include "jinete/alert.h" -#include "jinete/widget.h" -#include "jinete/window.h" - -#include "core/core.h" -#include "modules/gui.h" -#include "modules/sprites.h" -#include "raster/sprite.h" - -#endif - -/* if sprite_frpos < 0, set the frame length of all frames */ -void dialogs_frame_length(int sprite_frpos) -{ - JWidget window, frpos, frlen, ok; - char buf[64]; - - if (!is_interactive() || !current_sprite) - return; - - window = load_widget ("frlen.jid", "frame_duration"); - if (!window) - return; - - if (!get_widgets(window, - "frpos", &frpos, - "frlen", &frlen, - "ok", &ok, NULL)) { - jwidget_free(window); - return; - } - - if (sprite_frpos < 0) - strcpy(buf, "All"); - else - sprintf(buf, "%d", sprite_frpos); - jwidget_set_text(frpos, buf); - - sprintf(buf, "%d", sprite_get_frlen(current_sprite, current_sprite->frpos)); - jwidget_set_text(frlen, buf); - - jwindow_open_fg(window); - if (jwindow_get_killer(window) == ok) { - int num = strtol(jwidget_get_text(frlen), NULL, 10); - - if (sprite_frpos < 0) { - if (jalert("Warning" - "<mouse.y < FRMSIZE) { jwidget_release_mouse (widget); + /* TODO remove this, make a better UI */ dialogs_frame_length(current_sprite->frpos); jwidget_dirty(widget); return TRUE; diff --git a/src/script/bindings.c b/src/script/bindings.c index bc9c79d0d..38d2fbfe1 100644 --- a/src/script/bindings.c +++ b/src/script/bindings.c @@ -717,7 +717,6 @@ static int bind_jwidget_hook_signal (lua_State *L) #ifndef USE_PRECOMPILED_HEADER #include "dialogs/canvasze.h" -#include "dialogs/dfrlen.h" #include "dialogs/dmapgen.h" #include "dialogs/drawtext.h" #include "dialogs/effect.h" diff --git a/src/script/export.h b/src/script/export.h index eac138859..0eb2d8cdd 100644 --- a/src/script/export.h +++ b/src/script/export.h @@ -290,7 +290,6 @@ void dialogs_color_curve(void); void dialogs_convolution_matrix(void); void dialogs_draw_text(void); void switch_between_film_and_sprite_editor(void); -void dialogs_frame_length (int frpos); void dialogs_invert_color(void); void dialogs_mapgen(void); void dialogs_mask_color(void);