unpack zips in src to better compression
This commit is contained in:
115
sources/z-tools/trunk/zweather/dialog.c
Normal file
115
sources/z-tools/trunk/zweather/dialog.c
Normal file
@@ -0,0 +1,115 @@
|
||||
#include "general.h"
|
||||
#include "icon.h"
|
||||
#include "parsers.h"
|
||||
|
||||
extern struct xml_weather *zweatherdata;
|
||||
extern int8 wind_direction[8];
|
||||
extern void init_stik (void);
|
||||
|
||||
WINDOW *windialog = NULL;
|
||||
int8 icon_temp[8] = "";
|
||||
|
||||
static void force_update( WINDOW *win, int obj, int mode, void *data)
|
||||
{
|
||||
OBJECT *weather_form = get_tree( WEATHER);
|
||||
int time_minute;
|
||||
|
||||
graf_mouse( BUSYBEE, NULL);
|
||||
|
||||
if( EvntFind( NULL, WM_XTIMER))
|
||||
EvntDelete( NULL, WM_XTIMER);
|
||||
|
||||
if( zweatherdata)
|
||||
xml_weather_free( zweatherdata);
|
||||
|
||||
strcpy( location_code, ObjcString( weather_form, WEATHER_CODE, NULL));
|
||||
|
||||
zweatherdata = update_weatherdata( location_code);
|
||||
|
||||
time_minute = atoi( ( const char*)ObjcString( weather_form, WEATHER_UPDATE_TIME, NULL));
|
||||
|
||||
update_time = ( clock_t)( ( int32)time_minute * 12000L);
|
||||
|
||||
ObjcChange( OC_FORM, windialog, WEATHER_UPDATE, NORMAL, 0);
|
||||
|
||||
snd_rdw( windialog);
|
||||
|
||||
EvntAttach( NULL, WM_XTIMER, timer_function);
|
||||
|
||||
graf_mouse( ARROW, NULL);
|
||||
}
|
||||
|
||||
static void weather_dialog_quit( WINDOW *win, int obj, int mode, void *data)
|
||||
{
|
||||
ObjcChange( OC_FORM, win, obj, NORMAL, TRUE);
|
||||
ApplWrite( _AESapid, AP_TERM, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
static void CDECL continent_popup( WINDOW *win, int obj, int mode, void *data)
|
||||
{
|
||||
OBJECT *pop;
|
||||
int16 x, y;
|
||||
static int last_choice = -1;
|
||||
int choice;
|
||||
|
||||
rsrc_gaddr( 0, CONTINENT, &pop);
|
||||
objc_offset( FORM( win), obj, &x, &y);
|
||||
|
||||
choice = MenuPopUp ( pop, x, y, -1, -1, last_choice, P_WNDW + P_CHCK);
|
||||
last_choice = choice;
|
||||
ObjcChange( OC_FORM, win, obj, NORMAL, TRUE);
|
||||
}
|
||||
|
||||
void weather_dialog( void)
|
||||
{
|
||||
OBJECT *weather_form = get_tree( WEATHER);
|
||||
int frms[] = { WEATHER_PANEL1, WEATHER_PANEL2, WEATHER_PANEL3, WEATHER_PANEL4};
|
||||
int buts[] = { WEATHER_MAIN, WEATHER_FORECAST, WEATHER_MAP, WEATHER_PREF};
|
||||
int time_minute = ( int)( update_time / 12000L);
|
||||
|
||||
strcpy( ObjcString( weather_form, WEATHER_CONTINENT, NULL), "--");
|
||||
strcpy( ObjcString( weather_form, WEATHER_STATE, NULL), "--");
|
||||
strcpy( ObjcString( weather_form, WEATHER_CODE, NULL), location_code);
|
||||
sprintf( ObjcString( weather_form, WEATHER_UPDATE_TIME, NULL), "%d", time_minute);
|
||||
|
||||
windialog = FormCreate( weather_form, NAME|MOVER, NULL, " zWeather ", NULL, TRUE, FALSE);
|
||||
|
||||
// RsrcUserDraw( OC_FORM, windialog, WEATHER_ROOT, draw_root_dial, NULL);
|
||||
RsrcUserDraw( OC_FORM, windialog, WEATHER_ICON, draw_weather_icon, NULL);
|
||||
RsrcUserDraw( OC_FORM, windialog, WEATHER_ICON1, draw_forecast1_icon, NULL);
|
||||
RsrcUserDraw( OC_FORM, windialog, WEATHER_ICON2, draw_forecast2_icon, NULL);
|
||||
RsrcUserDraw( OC_FORM, windialog, WEATHER_ICON3, draw_forecast3_icon, NULL);
|
||||
RsrcUserDraw( OC_FORM, windialog, WEATHER_ICON4, draw_forecast4_icon, NULL);
|
||||
RsrcUserDraw( OC_FORM, windialog, WEATHER_ICON5, draw_forecast5_icon, NULL);
|
||||
RsrcUserDraw( OC_FORM, windialog, WEATHER_ICON6, draw_forecast6_icon, NULL);
|
||||
RsrcUserDraw( OC_FORM, windialog, WEATHER_WICON, draw_boussole_icon, NULL);
|
||||
|
||||
FormThumb( windialog, frms, buts, 4);
|
||||
|
||||
if( main_icon == NULL)
|
||||
main_icon = &icons[25];
|
||||
|
||||
if( forecast_icon[0] == NULL)
|
||||
forecast_icon[0] = &icons[25];
|
||||
|
||||
if( forecast_icon[1] == NULL)
|
||||
forecast_icon[1] = &icons[25];
|
||||
|
||||
if( forecast_icon[2] == NULL)
|
||||
forecast_icon[2] = &icons[25];
|
||||
|
||||
if( forecast_icon[3] == NULL)
|
||||
forecast_icon[3] = &icons[25];
|
||||
|
||||
if( forecast_icon[4] == NULL)
|
||||
forecast_icon[4] = &icons[25];
|
||||
|
||||
ObjcAttachVar( OC_FORM, windialog, WEATHER_METRIC, &unit, WEATHER_METRIC);
|
||||
ObjcAttachVar( OC_FORM, windialog, WEATHER_IMPERIAL, &unit, WEATHER_IMPERIAL);
|
||||
ObjcAttachFormFunc( windialog, WEATHER_UPDATE, force_update, NULL);
|
||||
ObjcAttachFormFunc( windialog, WEATHER_QUIT, weather_dialog_quit, NULL);
|
||||
ObjcAttachFormFunc( windialog, WEATHER_CONTINENT, continent_popup, NULL);
|
||||
|
||||
vswr_mode( windialog->graf->handle, MD_TRANS);
|
||||
vsl_color( windialog->graf->handle, RED);
|
||||
}
|
||||
Reference in New Issue
Block a user