home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * The contents of this file are subject to the Netscape Public License
- * Version 1.0 (the "NPL"); you may not use this file except in
- * compliance with the NPL. You may obtain a copy of the NPL at
- * http://www.mozilla.org/NPL/
- *
- * Software distributed under the NPL is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
- * for the specific language governing rights and limitations under the
- * NPL.
- *
- * The Initial Developer of this code under the NPL is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All Rights
- * Reserved.
- */
- /*-----------------------------------------*/
- /* */
- /* Name: LogoTest.c */
- /* Description: Test for XfeLogo widget. */
- /* Author: Ramiro Estrugo <ramiro@netscape.com> */
- /* */
- /*----------------------------------------------------------------------*/
-
-
-
- #include <Xfe/XfeTest.h>
-
- static void animation_callback (Widget,XtPointer,XtPointer);
- static void init_animations (void);
- static void set_animation (Cardinal);
-
- static void logo_activate_callback (Widget,XtPointer,XtPointer);
- static void start_callback (Widget,XtPointer,XtPointer);
- static void stop_callback (Widget,XtPointer,XtPointer);
- static void reset_callback (Widget,XtPointer,XtPointer);
- static void tick_callback (Widget,XtPointer,XtPointer);
-
- #define NUM_ANIMATIONS 4
- #define ANIMATION_INTERVAL 100
-
- static XfePixmapTable _animation_pixmaps[NUM_ANIMATIONS];
- static Cardinal _animation_frame_counts[NUM_ANIMATIONS];
- static Cardinal _current_animation = 0;
- static String _animation_names[NUM_ANIMATIONS] =
- {
- "Transparent Large",
- "Transparent Small",
- "Main Large",
- "Main Small"
- };
-
- static Widget _logo = NULL;
- static Widget _progress_bar = NULL;
-
- /*----------------------------------------------------------------------*/
- int
- main(int argc,char *argv[])
- {
- Widget form;
- Widget frame;
- Widget tool_bar;
- Widget start;
- Widget stop;
- Widget reset;
- Widget tick;
-
- XfeAppCreateSimple("LogoTest",&argc,argv,"MainFrame",&frame,&form);
-
- _logo = XtVaCreateManagedWidget("Logo",
- xfeLogoWidgetClass,
- form,
- NULL);
-
- _progress_bar = XtVaCreateManagedWidget("ProgressBar",
- xfeProgressBarWidgetClass,
- form,
- NULL);
-
- tool_bar = XtVaCreateManagedWidget("ToolBar",
- xfeToolBarWidgetClass,
- form,
- NULL);
-
- start = XtVaCreateManagedWidget("Start",
- xfeButtonWidgetClass,
- tool_bar,
- NULL);
-
- stop = XtVaCreateManagedWidget("Stop",
- xfeButtonWidgetClass,
- tool_bar,
- NULL);
-
- tick = XtVaCreateManagedWidget("Tick",
- xfeButtonWidgetClass,
- tool_bar,
- NULL);
-
- reset = XtVaCreateManagedWidget("Reset",
- xfeButtonWidgetClass,
- tool_bar,
- NULL);
-
-
- init_animations();
-
- XtVaSetValues(_logo,
- XmNbuttonLayout, XmBUTTON_LABEL_ON_BOTTOM,
- NULL);
-
- XtAddCallback(_logo,XmNactivateCallback,logo_activate_callback,NULL);
- XtAddCallback(_logo,XmNanimationCallback,animation_callback,NULL);
-
- XtAddCallback(start,XmNactivateCallback,start_callback,NULL);
- XtAddCallback(stop,XmNactivateCallback,stop_callback,NULL);
- XtAddCallback(reset,XmNactivateCallback,reset_callback,NULL);
- XtAddCallback(tick,XmNactivateCallback,tick_callback,NULL);
-
- set_animation(0);
-
- XtPopup(frame,XtGrabNone);
-
- XfeAppMainLoop();
-
- return 0;
- }
- /*----------------------------------------------------------------------*/
- static void
- set_animation(Cardinal i)
- {
- assert( i < NUM_ANIMATIONS );
-
- assert( _animation_pixmaps != NULL );
- assert( _animation_pixmaps[i] != NULL );
- assert( _animation_frame_counts != NULL );
-
- XtVaSetValues(_logo,
- XmNanimationPixmaps, _animation_pixmaps[i],
- XmNnumAnimationPixmaps, _animation_frame_counts[i],
- NULL);
- }
- /*----------------------------------------------------------------------*/
- static void
- animation_callback(Widget w,XtPointer client_data,XtPointer call_data)
- {
- Cardinal i;
- char buf[1024];
-
- XtVaGetValues(_logo,XmNcurrentPixmapIndex,&i,NULL);
-
- sprintf(buf,"%s\n%d",_animation_names[_current_animation],i);
-
- XfeSetXmStringPSZ(_logo,XmNlabelString,XmFONTLIST_DEFAULT_TAG,buf);
- }
- /*----------------------------------------------------------------------*/
- static void
- logo_activate_callback(Widget w,XtPointer client_data,XtPointer call_data)
- {
- _current_animation++;
-
- if (_current_animation == NUM_ANIMATIONS)
- {
- _current_animation = 0;
- }
-
- set_animation(_current_animation);
- }
- /*----------------------------------------------------------------------*/
- static void
- start_callback(Widget w,XtPointer client_data,XtPointer call_data)
- {
- XfeLogoAnimationStart(_logo);
-
- XfeProgressBarCylonStart(_progress_bar);
- }
- /*----------------------------------------------------------------------*/
- static void
- stop_callback(Widget w,XtPointer client_data,XtPointer call_data)
- {
- XfeLogoAnimationStop(_logo);
-
- XfeProgressBarCylonStop(_progress_bar);
- }
- /*----------------------------------------------------------------------*/
- static void
- reset_callback(Widget w,XtPointer client_data,XtPointer call_data)
- {
- XfeLogoAnimationReset(_logo);
-
- XfeProgressBarCylonReset(_progress_bar);
- }
- /*----------------------------------------------------------------------*/
- static void
- tick_callback(Widget w,XtPointer client_data,XtPointer call_data)
- {
- XfeProgressBarCylonTick(_progress_bar);
- }
- /*----------------------------------------------------------------------*/
- static void
- init_animations()
- {
- XfePixmapTable pixmaps = NULL;
- Cardinal num_pixmaps = 0;
-
- /* Transparent 40x40 */
- pixmaps = NULL;
- num_pixmaps = 0;
-
- XfeGetTransparent40x40Animation(_logo,&pixmaps,&num_pixmaps);
-
- _animation_pixmaps[0] = pixmaps;
- _animation_frame_counts[0] = num_pixmaps;
-
- /* Transparent 20x20 */
- pixmaps = NULL;
- num_pixmaps = 0;
-
- XfeGetTransparent20x20Animation(_logo,&pixmaps,&num_pixmaps);
-
- _animation_pixmaps[1] = pixmaps;
- _animation_frame_counts[1] = num_pixmaps;
-
- /* Main 40x40 */
- pixmaps = NULL;
- num_pixmaps = 0;
-
- XfeGetMain40x40Animation(_logo,&pixmaps,&num_pixmaps);
-
- _animation_pixmaps[2] = pixmaps;
- _animation_frame_counts[2] = num_pixmaps;
-
- /* Main 20x20 */
- pixmaps = NULL;
- num_pixmaps = 0;
-
- XfeGetMain20x20Animation(_logo,&pixmaps,&num_pixmaps);
-
- _animation_pixmaps[3] = pixmaps;
- _animation_frame_counts[3] = num_pixmaps;
- }
- /*----------------------------------------------------------------------*/
-