home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga ACS 1998 #6
/
amigaacscoverdisc1998-061998.iso
/
games
/
descent
/
source
/
ui
/
barbox.c
next >
Wrap
Text File
|
1998-06-08
|
3KB
|
130 lines
/*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
*/
/*
* $Source: f:/miner/source/ui/rcs/barbox.c $
* $Revision: 1.2 $
* $Author: john $
* $Date: 1994/01/18 11:07:45 $
*
* File for creating a barbox...
*
* $Log: barbox.c $
* Revision 1.2 1994/01/18 11:07:45 john
* *** empty log message ***
*
* Revision 1.1 1994/01/10 15:24:32 john
* Initial revision
*
*
*/
#pragma off (unreferenced)
static char rcsid[] = "$Id: barbox.c 1.2 1994/01/18 11:07:45 john Exp $";
#pragma on (unreferenced)
#include <stdio.h>
#include <stdarg.h>
#include "fix.h"
#include "types.h"
#include "gr.h"
#include "ui.h"
#include "key.h"
static UI_WINDOW * wnd = NULL;
static int bar_width, bar_height, bar_x, bar_y, bar_maxlength;
void ui_barbox_open( char * text, int length )
{
grs_font * temp_font;
short text_width, text_height, avg;
int w,h, width, height, xc, yc, x, y;
w = grd_curscreen->sc_w;
h = grd_curscreen->sc_h;
width = w/3;
bar_maxlength = length;
if ( w < 640 ) {
temp_font = grd_curscreen->sc_canvas.cv_font;
grd_curscreen->sc_canvas.cv_font = ui_small_font;
}
gr_get_string_size(text, &text_width, &text_height, &avg );
text_width += avg*6;
text_width += 10;
if (text_width > width )
width = text_width;
height = text_height;
height += 30;
xc = w/2;
yc = h/2;
x = xc - width/2;
y = yc - height/2;
if (x < 0 ) x = 0;
if ( (x+width-1) >= w ) x = w - width;
if (y < 0 ) y = 0;
if ( (y+height-1) >= h ) y = h - height;
wnd = ui_open_window( x, y, width, height, WIN_DIALOG );
y = 5 + text_height/2 ;
ui_string_centered( width/2, y, text );
y = 10 + text_height;
bar_width = width - 15;
bar_height = 10;
bar_x = (width/2) - (bar_width/2);
bar_y = height - 15;
ui_draw_line_in( bar_x-2, bar_y-2, bar_x+bar_width+1, bar_y+bar_height+1 );
grd_curscreen->sc_canvas.cv_font = temp_font;
}
int ui_barbox_update( int position )
{
int spos;
spos = (position * bar_width)/bar_maxlength;
gr_set_current_canvas( wnd->canvas );
ui_mouse_hide();
gr_setcolor( BM_XRGB(0,0,10));
gr_rect( bar_x, bar_y, bar_x+spos-1, bar_y+bar_height-1 );
ui_mouse_show();
ui_mouse_process();
}
void ui_barbox_close()
{
if (wnd)
ui_close_window(wnd);
}