/* Terminality - a portable terminal handling library * Copyright (C) 1998-2002, Emil Mikulic. * This is LGPL - look at COPYING.LIB */ /* Project: Terminality * File: elements.cpp * Author: Michal Safranek * Description: Element functions */ #include "gui.h" #include "elements.h" const char elements_rcsid[] = "$Id: elements.cpp,v 1.8 2002/07/26 01:39:40 darkmoon Exp $"; /* Callback handler for elements_change_scheme() */ static void elm_chng_hndlr(element_type t, void *p) { switch(t) { case Menu: ((menu *) p)->change_scheme(); break; case Hmenu: ((hMenu *) p)->change_scheme(); break; case Form: ((form *) p)->change_scheme(); break; case Listing: ((listing *) p)->change_scheme(); break; case Custom: ((custom *) p)->change_scheme(); break; case Textview: ((textview *) p)->change_scheme(); break; default: break; } } /* Callback handler for elements_redraw() */ static void elm_rdrw(element_type t, void *p) { switch(t) { case Menu: ((menu *) p)->draw(); break; case Hmenu: ((hMenu *) p)->draw(); break; case Form: ((form *) p)->draw(); break; case Listing: ((listing *) p)->draw(); break; case Custom: ((custom *) p)->draw(); break; case Textview: ((textview *) p)->draw(); break; default: break; } } /* Change scheme of all elements */ void elements_change_scheme(void) { register_callback(&elm_chng_hndlr); } /* Redraw elements */ void elements_redraw(int cs) { if (cs) { clrscr(); /* update(); */ } register_callback(&elm_rdrw); update(); }