Commit d15bcfc3 authored by claes's avatar claes

GTK added

parent 22f686cd
/**
* Proview $Id: co_msglist_gtk.cpp,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
/* co_msglist_gtk.cpp -- Message list */
#include "glow_std.h"
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
extern "C" {
#include "co_cdh.h"
#include "co_time.h"
}
#include "flow.h"
#include "flow_browctx.h"
#include "flow_browapi.h"
#include "flow_browwidget_gtk.h"
#include "co_msglist_gtk.h"
MsgListGtk::MsgListGtk (
void *ev_parent_ctx,
GtkWidget *ev_parent_wid,
GtkWidget **w) :
MsgList( ev_parent_ctx), parent_wid(ev_parent_wid)
{
form_widget = scrolledbrowwidgetgtk_new(
MsgList::init_brow_cb, this, &brow_widget);
gtk_widget_show_all( brow_widget);
// Create the root item
*w = form_widget;
}
//
// Delete ev
//
MsgListGtk::~MsgListGtk()
{
delete brow;
gtk_widget_destroy( form_widget);
}
void MsgListGtk::set_input_focus()
{
gtk_widget_grab_focus( brow_widget);
}
/*
* Proview $Id: glow_frame.h,v 1.3 2005-09-01 14:57:53 claes Exp $
/**
* Proview $Id: co_msglist_gtk.h,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -17,30 +17,32 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#ifndef glow_frame_h
#define glow_frame_h
#ifndef xtt_msglist_gtk_h
#define xtt_msglist_gtk_h
#include <iostream.h>
#include <fstream.h>
#include "glow.h"
#include "glow_ctx.h"
#include "glow_point.h"
#include "glow_rect.h"
/* xtt_msglist_gtk.h -- Message list */
#ifndef co_msglist_h
# include "co_msglist.h"
#endif
class GlowFrame : public GlowRect {
class MsgListGtk : public MsgList {
public:
GlowFrame( GlowCtx *glow_ctx, double x = 0, double y = 0, double w = 0,
double h = 0, glow_eDrawType d_type = glow_eDrawType_Line,
int line_w = 1, int fix_line_w = 0) :
GlowRect( glow_ctx, x, y, w, h, d_type, line_w, fix_line_w) {};
void save( ofstream& fp, glow_eSaveMode mode);
void open( ifstream& fp);
void draw( void *pos, int highlight, int hot, void *node);
void erase( void *pos, int hot, void *node);
void get_borders( double pos_x, double pos_y, double *x_right,
double *x_left, double *y_high, double *y_low, void *node);
glow_eObjectType type() { return glow_eObjectType_Frame;};
MsgListGtk(
void *ev_parent_ctx,
GtkWidget *ev_parent_wid,
GtkWidget **w);
~MsgListGtk();
GtkWidget *parent_wid;
GtkWidget *brow_widget;
GtkWidget *form_widget;
GtkWidget *toplevel;
void set_input_focus();
};
#endif
/**
* Proview $Id: co_msgwindow_gtk.cpp,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
/* co_msgwindow_gtk.cpp -- Message window */
#include "glow_std.h"
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
#include "co_cdh.h"
#include "co_time.h"
#include "co_dcli.h"
#include "co_lng.h"
#include "co_xhelp.h"
#include "co_msgwindow_gtk.h"
#include "co_msglist_gtk.h"
#include "co_wow_gtk.h"
static gint delete_event( GtkWidget *w, GdkEvent *event, gpointer msgw)
{
MsgWindowGtk::activate_exit(w, msgw);
return TRUE;
}
static void destroy_event( GtkWidget *w, gpointer data)
{
}
MsgWindowGtk::MsgWindowGtk (
void *msg_parent_ctx,
GtkWidget *msg_parent_wid,
char *msg_name,
pwr_tStatus *status) :
MsgWindow( parent_ctx, msg_name, status), parent_wid(msg_parent_wid)
{
const int window_width = 800;
const int window_height = 600;
toplevel = (GtkWidget *) g_object_new( GTK_TYPE_WINDOW,
"default-height", window_height,
"default-width", window_width,
"title", msg_name,
NULL);
g_signal_connect( toplevel, "delete_event", G_CALLBACK(delete_event), this);
g_signal_connect( toplevel, "destroy", G_CALLBACK(destroy_event), this);
g_signal_connect( toplevel, "focus-in-event", G_CALLBACK(MsgWindowGtk::action_inputfocus), this);
CoWowGtk::SetWindowIcon( toplevel);
GtkAccelGroup *accel_g = (GtkAccelGroup *) g_object_new(GTK_TYPE_ACCEL_GROUP, NULL);
gtk_window_add_accel_group(GTK_WINDOW(toplevel), accel_g);
GtkMenuBar *menu_bar = (GtkMenuBar *) g_object_new(GTK_TYPE_MENU_BAR, NULL);
// File Entry
GtkWidget *file_clear = gtk_menu_item_new_with_mnemonic( "C_lear");
g_signal_connect( file_clear, "activate",
G_CALLBACK(MsgWindowGtk::activate_clear), this);
GtkWidget *file_close = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLOSE, accel_g);
g_signal_connect(file_close, "activate", G_CALLBACK(MsgWindowGtk::activate_exit), this);
GtkMenu *file_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_clear);
gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), file_close);
GtkWidget *file = gtk_menu_item_new_with_mnemonic("_File");
gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), file);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), GTK_WIDGET(file_menu));
// View menu
GtkWidget *view_zoom_in = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_IN, NULL);
g_signal_connect(view_zoom_in, "activate", G_CALLBACK(MsgWindowGtk::activate_zoom_in), this);
gtk_widget_add_accelerator( view_zoom_in, "activate", accel_g,
'i', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
GtkWidget *view_zoom_out = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_OUT, NULL);
g_signal_connect(view_zoom_out, "activate", G_CALLBACK(MsgWindowGtk::activate_zoom_out), this);
gtk_widget_add_accelerator( view_zoom_out, "activate", accel_g,
'o', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
GtkWidget *view_zoom_reset = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_100, NULL);
g_signal_connect(view_zoom_reset, "activate", G_CALLBACK(MsgWindowGtk::activate_zoom_reset), this);
GtkMenu *view_menu = (GtkMenu *) g_object_new( GTK_TYPE_MENU, NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_in);
gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_out);
gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), view_zoom_reset);
GtkWidget *view = gtk_menu_item_new_with_mnemonic("_View");
gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), view);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(view), GTK_WIDGET(view_menu));
form = gtk_vbox_new( FALSE, 0);
// Create msgnav
msgnav = new MsgListGtk( this, form, &nav_widget);
msgnav->find_wnav_cb = MsgWindow::msgw_find_wnav_cb;
msgnav->find_plc_cb = MsgWindow::msgw_find_plc_cb;
gtk_box_pack_start( GTK_BOX(form), GTK_WIDGET(menu_bar), FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(form), GTK_WIDGET(nav_widget), TRUE, TRUE, 0);
gtk_container_add( GTK_CONTAINER(toplevel), form);
gtk_widget_show_all( toplevel);
g_object_set( toplevel, "visible", FALSE, NULL);
wow = new CoWowGtk( toplevel);
}
//
// Delete window
//
MsgWindowGtk::~MsgWindowGtk()
{
if ( toplevel)
gtk_widget_destroy( toplevel);
if ( msgnav)
delete msgnav;
}
void MsgWindowGtk::map()
{
if ( nodraw) {
deferred_map = 1;
return;
}
else
deferred_map = 0;
if ( maptimer.disabled())
return;
if ( !displayed) {
g_object_set( toplevel, "visible", TRUE, NULL);
displayed = 1;
}
else {
gtk_window_present( GTK_WINDOW(toplevel));
}
maptimer.disable(400);
}
void MsgWindowGtk::unmap()
{
if ( displayed) {
g_object_set( toplevel, "visible", FALSE, NULL);
displayed = 0;
}
}
gboolean MsgWindowGtk::action_inputfocus( GtkWidget *w, GdkEvent *event, gpointer data)
{
MsgWindowGtk *msgw = (MsgWindowGtk *)data;
if ( msgw && msgw->displayed) {
if ( msgw->focustimer.disabled())
return FALSE;
msgw->msgnav->set_input_focus();
msgw->focustimer.disable( 400);
}
return FALSE;
}
void MsgWindowGtk::activate_exit( GtkWidget *w, gpointer data)
{
MsgWindowGtk *msgw = (MsgWindowGtk *)data;
g_object_set( msgw->toplevel, "visible", FALSE, NULL);
msgw->displayed = 0;
}
void MsgWindowGtk::activate_clear( GtkWidget *w, gpointer data)
{
MsgWindow *msgw = (MsgWindow *)data;
msgw->msgnav->clear();
msgw->size = 0;
}
void MsgWindowGtk::activate_zoom_in( GtkWidget *w, gpointer data)
{
MsgWindow *msgw = (MsgWindow *)data;
msgw->msgnav->zoom( 1.2);
}
void MsgWindowGtk::activate_zoom_out( GtkWidget *w, gpointer data)
{
MsgWindow *msgw = (MsgWindow *)data;
msgw->msgnav->zoom( 5.0/6);
}
void MsgWindowGtk::activate_zoom_reset( GtkWidget *w, gpointer data)
{
MsgWindow *msgw = (MsgWindow *)data;
msgw->msgnav->unzoom();
}
void MsgWindowGtk::activate_help( GtkWidget *w, gpointer data)
{
CoXHelp::dhelp( "messagewindow_refman", 0, navh_eHelpFile_Other, "$pwr_lang/man_dg.dat",
true);
}
void MsgWindowGtk::activate_help_message( GtkWidget *w, gpointer data)
{
CoXHelp::dhelp( "message window", 0, navh_eHelpFile_Base, 0, true);
}
/**
* Proview $Id: co_msgwindow_gtk.h,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#ifndef co_msgwindow_gtk_h
#define co_msgwindow_gtk_h
/* co_msgwindow_gtk.h -- Message window */
#ifndef co_msgwindow_h
# include "co_msgwindow.h"
#endif
#ifndef co_wow_gtk_h
# include "co_wow_gtk.h"
#endif
#include <gtk/gtk.h>
class MsgWindowGtk : public MsgWindow {
public:
MsgWindowGtk(
void *msg_parent_ctx,
GtkWidget *msg_parent_wid,
char *msg_name,
pwr_tStatus *status);
~MsgWindowGtk();
GtkWidget *parent_wid;
GtkWidget *toplevel;
GtkWidget *form;
GtkWidget *nav_widget;
CoWowFocusTimerGtk focustimer;
CoWowFocusTimerGtk maptimer;
void map();
void unmap();
static gboolean action_inputfocus( GtkWidget *w, GdkEvent *event, gpointer data);
static void activate_exit( GtkWidget *w, gpointer data);
static void activate_clear( GtkWidget *w, gpointer data);
static void activate_zoom_in( GtkWidget *w, gpointer data);
static void activate_zoom_out( GtkWidget *w, gpointer data);
static void activate_zoom_reset( GtkWidget *w, gpointer data);
static void activate_help( GtkWidget *w, gpointer data);
static void activate_help_message( GtkWidget *w, gpointer data);
};
#endif
This diff is collapsed.
/**
* Proview $Id: co_wow_gtk.h,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#ifndef co_wow_gtk_h
#define co_wow_gtk_h
/* co_wow_gtk.h -- useful windows */
#include "co_wow.h"
#include <gtk/gtk.h>
typedef struct {
void *ctx;
void *data;
void (* questionbox_ok) ( void *, void *);
void (* questionbox_cancel) ( void *, void *);
void (* questionbox_help) ( void *, void *);
GtkWidget *question_widget;
} wow_t_question_cb;
class CoWowEntryGtk {
public:
CoWowRecall *m_re;
GtkWidget *w;
bool m_re_alloc;
CoWowEntryGtk( CoWowRecall *re = 0);
~CoWowEntryGtk();
GtkWidget *widget() { return w;}
void set_recall_buffer( CoWowRecall *re) {
if ( !m_re_alloc)
m_re = re;
}
static gboolean event_cb( GtkWidget *w, GdkEvent *event, gpointer data);
};
class CoWowWidgetGtk : public CoWowWidget {
CoWowWidgetGtk( GtkWidget *w) : widget(w) {}
GtkWidget *widget;
};
class CoWowFocusTimerGtk {
public:
CoWowFocusTimerGtk() :
set_focus_disabled(0), request_cnt(0), focus_timerid(0) {}
~CoWowFocusTimerGtk();
void disable( int time);
int disabled();
private:
int set_focus_disabled;
int request_cnt;
gint focus_timerid;
static gboolean enable_set_focus( void *ft);
};
class CoWowTimerGtk : public CoWowTimer {
public:
gint m_timerid;
CoWowTimerGtk() : m_timerid(0) {}
~CoWowTimerGtk();
void add( int time, void (* callback)(void *data), void *data);
void remove();
static gboolean timer_cb( void *data);
};
class CoWowGtk : public CoWow {
public:
GtkWidget *m_parent;
CoWowGtk( GtkWidget *parent) : m_parent(parent) {}
~CoWowGtk() {}
void DisplayQuestion( void *ctx, char *title, char *text,
void (* questionbox_ok) ( void *, void *),
void (* questionbox_cancel) ( void *, void *),
void *data);
void DisplayError( char *title, char *text);
void *CreateList( char *title, char *texts,
void (action_cb)( void *, char *),
void *ctx);
void CreateFileSelDia( char *title, void *parent_ctx,
void (*file_selected_cb)(void *, char *, wow_eFileSelType),
wow_eFileSelType file_type);
int DisplayWarranty();
void DisplayLicense();
CoWowTimer *timer_new();
static void PopupPosition( GtkWidget *parent, int x_event, int y_event, int *x, int *y);
static void GetAtoms( GdkAtom *graph_atom, GdkAtom *objid_atom, GdkAtom *attrref_atom);
static int GetSelection( GtkWidget *w, char *str, int size, GdkAtom atom);
static void SetWindowIcon( GtkWidget *w);
static void question_ok_cb( GtkWidget *w, gpointer data);
static void question_cancel_cb( GtkWidget *w, gpointer data);
static void warranty_cb( GtkWidget *w, gint response, gpointer data);
static void license_cb( GtkWidget *w, gint response, gpointer data);
static char *translate_utf8( char *str);
#if 0
static void error_ok_cb(Widget w);
static void question_help_cb( Widget dialog,XtPointer data,
XmAnyCallbackStruct *cbs);
#endif
static void list_ok_cb( GtkWidget *w, gpointer data);
static void list_cancel_cb( GtkWidget *w, gpointer data);
};
#endif
This diff is collapsed.
/**
* Proview $Id: co_xhelp_gtk.h,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#include <gtk/gtk.h>
#ifndef co_xhelp_gtk_h
#define co_xhelp_gtk_h
#ifndef co_xhelp_h
# include "co_xhelp.h"
#endif
#ifndef co_wow_gtk_h
# include "co_wow_gtk.h"
#endif
class CoXHelpGtk : public CoXHelp {
public:
CoXHelpGtk(
GtkWidget *xa_parent_wid,
void *xa_parent_ctx,
xhelp_eUtility utility,
int *xa_sts);
GtkWidget *parent_wid;
GtkWidget *brow_widget;
GtkWidget *form_widget;
GtkWidget *toplevel;
GtkWidget *xhelpnav_form;
GtkWidget *india_widget;
GtkWidget *india_label;
GtkWidget *india_text;
CoWowFocusTimerGtk focustimer;
void set_dimension( int width, int height);
void pop();
void open_input_dialog( char *text, char *title,
char *init_text,
void (*ok_cb)( CoXHelp *, char *));
static void activate_close( GtkWidget *w, gpointer data);
static void activate_zoom_in( GtkWidget *w, gpointer data);
static void activate_zoom_out( GtkWidget *w, gpointer data);
static void activate_zoom_reset( GtkWidget *w, gpointer data);
static void activate_search( GtkWidget *w, gpointer data);
static void activate_searchnext( GtkWidget *w, gpointer data);
static void activate_searchprevious( GtkWidget *w, gpointer data);
static void activate_india_ok( GtkWidget *w, gpointer data);
static void activate_india_cancel( GtkWidget *w, gpointer data);
static void activate_help( GtkWidget *w, gpointer data);
static void enable_set_focus( CoXHelpGtk *xhelp);
static void disable_set_focus( CoXHelpGtk *xhelp, int time);
static gboolean action_inputfocus( GtkWidget *w, GdkEvent *event, gpointer data);
static GtkWidget *get_widget() {
if ( default_xhelp)
return ((CoXHelpGtk *)default_xhelp)->parent_wid;
else
return 0;
}
~CoXHelpGtk();
};
#endif
/**
* Proview $Id: co_xhelpnav_gtk.cpp,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
/* co_xhelpnav_gtk.cpp -- helptext navigator */
#include "flow_std.h"
#include <stdio.h>
#include <stdlib.h>
#include "co_cdh.h"
#include "co_dcli.h"
#include "co_time.h"
#include "co_msg.h"
#include "flow.h"
#include "flow_browctx.h"
#include "flow_browapi.h"
#include "flow_browwidget_gtk.h"
#include "flow_utils.h"
#include "co_xhelpnav_gtk.h"
extern "C" {
#include "co_api.h"
}
void CoXHelpNavGtk::pop()
{
}
//
// Create the navigator widget
//
CoXHelpNavGtk::CoXHelpNavGtk(
void *xn_parent_ctx,
GtkWidget *xn_parent_wid,
char *xn_name,
xhelp_eUtility xn_utility,
GtkWidget **w,
pwr_tStatus *status) :
CoXHelpNav(xn_parent_ctx,xn_name,xn_utility,status),
parent_wid(xn_parent_wid)
{
form_widget = scrolledbrowwidgetgtk_new(
CoXHelpNav::init_brow_base_cb, this, &brow_widget);
gtk_widget_show_all( brow_widget);
displayed = 1;
*w = form_widget;
*status = 1;
}
//
// Delete a nav context
//
CoXHelpNavGtk::~CoXHelpNavGtk()
{
closing_down = 1;
for ( int i = 0; i < brow_cnt; i++) {
brow_DeleteSecondaryCtx( brow_stack[i]->ctx);
brow_stack[i]->free_pixmaps();
delete brow_stack[i];
}
delete brow;
gtk_widget_destroy( form_widget);
}
void CoXHelpNavGtk::set_inputfocus()
{
gtk_widget_grab_focus( brow_widget);
}
/*
* Proview $Id: glow_pushbutton.h,v 1.2 2005-09-01 14:57:54 claes Exp $
/**
* Proview $Id: co_xhelpnav_gtk.h,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -17,42 +17,43 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#ifndef glow_pushbutton_h
#define glow_pushbutton_h
#ifndef co_xhelpnav_motif_h
#define co_xhelpnav_motif_h
#include <iostream.h>
#include "glow_ctx.h"
#include "glow_point.h"
#include "glow_rect.h"
#include "glow_text.h"
#include "glow_array_elem.h"
#include "glow_pushbutton.h"
/* co_xhelpnav_motif.h -- Helptext navigator */
class GlowPushButton : public GlowArrayElem {
#include <gtk/gtk.h>
#ifndef pwr_h
# include "pwr.h"
#endif
#ifndef co_xhelpnav_h
#include "co_xhelpnav.h"
#endif
class CoXHelpNavGtk : public CoXHelpNav {
public:
GlowPushButton( GlowCtx *glow_ctx, char *p_name,
double x1, double y1, double width, double height);
friend ostream& operator<< ( ostream& o, const GlowPushButton p);
int event_handler( glow_eEvent event, int x, int y);
void zoom() {};
void nav_zoom() {};
void print_zoom() {};
void traverse( int x, int y) {};
void print( double ll_x, double ll_y, double ur_x, double ur_y) {};
void draw( int ll_x, int ll_y, int ur_x, int ur_y);
void get_borders(
double *x1_right, double *x1_left, double *y1_high, double *y1_low) {};
void get_borders( double pos_x, double pos_y,
double *x_right, double *x_left, double *y_high, double *y_low) {};
double zoom_factor;
GlowCtx *ctx;
GlowPoint pos;
char name[32];
GlowRect r;
GlowText t;
void conpoint_refcon_redraw( void *node, int conpoint) {};
void conpoint_refcon_erase( void *node, int conpoint) {};
void remove_notify() {};
CoXHelpNavGtk(
void *xn_parent_ctx,
GtkWidget *xn_parent_wid,
char *xn_name,
xhelp_eUtility xn_utility,
GtkWidget **w,
pwr_tStatus *status);
~CoXHelpNavGtk();
GtkWidget *parent_wid;
GtkWidget *brow_widget;
GtkWidget *form_widget;
GtkWidget *toplevel;
void set_inputfocus();
void pop();
};
#endif
include $(pwre_dir_symbols)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(hw_name)/$(type_name)_generic.mk
ifeq ($($(type_name)_generic_mk),)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(type_name)_generic.mk
endif
ifeq ($($(type_name)_generic_mk),)
include $(pwre_sroot)/tools/bld/src/$(type_name)_generic.mk
endif
-include ../../special.mk
-include ../special.mk
-include special.mk
/**
* Proview $Id: co_msglist_motif.cpp,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
/* co_msglist_motif.cpp -- Message list */
#include "glow_std.h"
#include <stdio.h>
#include <stdlib.h>
extern "C" {
#include "co_cdh.h"
#include "co_time.h"
//#include "pwr_baseclasses.h"
}
#include <Xm/Xm.h>
#include <Xm/XmP.h>
#include <Xm/Text.h>
#include <Mrm/MrmPublic.h>
#include <X11/Intrinsic.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
// Status is defined as int i xlib...
#ifdef Status
# undef Status
#endif
extern "C" {
#include "flow_x.h"
#include "co_mrm_util.h"
}
#include "flow.h"
#include "flow_browctx.h"
#include "flow_browapi.h"
#include "flow_browwidget_motif.h"
#include "co_msglist_motif.h"
MsgListMotif::MsgListMotif(
void *ev_parent_ctx,
Widget ev_parent_wid,
Widget *w) :
MsgList( ev_parent_ctx), parent_wid(ev_parent_wid)
{
form_widget = ScrolledBrowCreate( parent_wid, "MsgList", NULL, 0,
MsgList::init_brow_cb, this, (Widget *)&brow_widget);
XtManageChild( form_widget);
*w = form_widget;
}
//
// Delete ev
//
MsgListMotif::~MsgListMotif()
{
delete brow;
XtDestroyWidget( form_widget);
}
void MsgListMotif::set_input_focus()
{
if ( flow_IsViewable( brow_widget))
XtCallAcceptFocus( brow_widget, CurrentTime);
}
/**
* Proview $Id: co_msglist_motif.h,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#ifndef xtt_msglist_motif_h
#define xtt_msglist_motif_h
/* xtt_msglist_motif.h -- Message list */
#ifndef co_msglist_h
# include "co_msglist.h"
#endif
class MsgListMotif : public MsgList {
public:
MsgListMotif(
void *ev_parent_ctx,
Widget ev_parent_wid,
Widget *w);
~MsgListMotif();
Widget parent_wid;
Widget brow_widget;
Widget form_widget;
Widget toplevel;
void set_input_focus();
};
#endif
/**
* Proview $Id: co_msgwindow_motif.cpp,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
/* co_msgwindow_motif.cpp -- Message window */
#include "glow_std.h"
#include <stdio.h>
#include <stdlib.h>
#include "co_cdh.h"
#include "co_time.h"
#include "co_dcli.h"
#include <Xm/Xm.h>
#include <Xm/XmP.h>
#include <Xm/Text.h>
#include <Mrm/MrmPublic.h>
#include <X11/Intrinsic.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
extern "C" {
#include "flow_x.h"
}
#include "co_lng.h"
#include "co_xhelp.h"
#include "co_msgwindow_motif.h"
#include "co_msglist_motif.h"
#include "co_wow_motif.h"
MsgWindowMotif::MsgWindowMotif(
void *msg_parent_ctx,
Widget msg_parent_wid,
char *msg_name,
pwr_tStatus *status) :
MsgWindow( parent_ctx, msg_name, status), parent_wid(msg_parent_wid)
{
char uid_filename[120] = {"$pwr_exe/wb_msgwindow.uid"};
char *uid_filename_p = uid_filename;
Arg args[20];
pwr_tStatus sts;
int i;
MrmHierarchy s_DRMh;
MrmType dclass;
static char msg_translations[] =
"<FocusIn>: msg_inputfocus()\n";
static XtTranslations msg_compiled_translations = NULL;
static XtActionsRec msg_actions[] =
{
{"msg_inputfocus", (XtActionProc) action_inputfocus}
};
static MrmRegisterArg reglist[] = {
{ "msg_ctx", 0 },
{"msg_activate_exit",(caddr_t)activate_exit },
{"msg_activate_clear",(caddr_t)activate_clear },
{"msg_activate_zoom_in",(caddr_t)activate_zoom_in },
{"msg_activate_zoom_out",(caddr_t)activate_zoom_out },
{"msg_activate_zoom_reset",(caddr_t)activate_zoom_reset },
{"msg_activate_help",(caddr_t)activate_help },
{"msg_activate_help_message",(caddr_t)activate_help_message },
{"msg_create_form",(caddr_t)create_form }
};
static int reglist_num = (sizeof reglist / sizeof reglist[0]);
*status = 1;
strcpy( name, msg_name);
reglist[0].value = (caddr_t) this;
// Motif
MrmInitialize();
// Save the context structure in the widget
i = 0;
XtSetArg(args[i], XmNuserData, (unsigned int) this);i++;
XtSetArg(args[i], XmNdeleteResponse, XmDO_NOTHING);i++;
dcli_translate_filename( uid_filename, uid_filename);
sts = MrmOpenHierarchy( 1, &uid_filename_p, NULL, &s_DRMh);
if (sts != MrmSUCCESS) printf("can't open %s\n", uid_filename);
MrmRegisterNames(reglist, reglist_num);
parent_wid = XtCreatePopupShell( name,
topLevelShellWidgetClass, parent_wid, args, i);
sts = MrmFetchWidgetOverride( s_DRMh, "msg_window", parent_wid,
name, args, 1, &toplevel, &dclass);
if (sts != MrmSUCCESS) printf("can't fetch %s\n", name);
MrmCloseHierarchy(s_DRMh);
if ( msg_compiled_translations == NULL)
{
XtAppAddActions( XtWidgetToApplicationContext( toplevel),
msg_actions, XtNumber(msg_actions));
msg_compiled_translations = XtParseTranslationTable( msg_translations);
}
XtOverrideTranslations( toplevel, msg_compiled_translations);
i = 0;
XtSetArg(args[i],XmNwidth,900);i++;
XtSetArg(args[i],XmNheight,600);i++;
XtSetValues( toplevel, args,i);
XtManageChild( toplevel);
// Create msgnav
msgnav = new MsgListMotif( this, form, &nav_widget);
msgnav->find_wnav_cb = MsgWindow::msgw_find_wnav_cb;
msgnav->find_plc_cb = MsgWindow::msgw_find_plc_cb;
// XtManageChild( form_widget);
XtRealizeWidget( parent_wid);
// Connect the window manager close-button to exit
flow_AddCloseVMProtocolCb( parent_wid,
(XtCallbackProc)activate_exit, this);
wow = new CoWowMotif( parent_wid);
}
//
// Delete window
//
MsgWindowMotif::~MsgWindowMotif()
{
if ( parent_wid)
XtDestroyWidget( parent_wid);
if ( msgnav)
delete msgnav;
}
void MsgWindowMotif::map()
{
if ( nodraw) {
deferred_map = 1;
return;
}
else
deferred_map = 0;
if ( !displayed)
{
flow_MapWidget( parent_wid);
displayed = 1;
}
else
{
flow_UnmapWidget( parent_wid);
flow_MapWidget( parent_wid);
}
}
void MsgWindowMotif::unmap()
{
if ( displayed)
{
flow_UnmapWidget( parent_wid);
displayed = 0;
}
}
void MsgWindowMotif::action_inputfocus( Widget w, XmAnyCallbackStruct *data)
{
Arg args[1];
MsgWindow *msgw;
XtSetArg (args[0], XmNuserData, &msgw);
XtGetValues (w, args, 1);
if ( msgw && msgw->displayed)
msgw->msgnav->set_input_focus();
}
void MsgWindowMotif::activate_exit( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
flow_UnmapWidget( ((MsgWindowMotif *)msgw)->parent_wid);
msgw->displayed = 0;
}
void MsgWindowMotif::activate_clear( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
msgw->msgnav->clear();
msgw->size = 0;
}
void MsgWindowMotif::activate_zoom_in( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
msgw->msgnav->zoom( 1.2);
}
void MsgWindowMotif::activate_zoom_out( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
msgw->msgnav->zoom( 5.0/6);
}
void MsgWindowMotif::activate_zoom_reset( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
msgw->msgnav->unzoom();
}
void MsgWindowMotif::activate_help( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
CoXHelp::dhelp( "messagewindow_refman", 0, navh_eHelpFile_Other, "$pwr_lang/man_dg.dat",
true);
}
void MsgWindowMotif::activate_help_message( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
CoXHelp::dhelp( "message window", 0, navh_eHelpFile_Base, 0, true);
}
void MsgWindowMotif::create_form( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
((MsgWindowMotif *)msgw)->form = w;
}
/**
* Proview $Id: co_msgwindow_motif.h,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#ifndef co_msgwindow_motif_h
#define co_msgwindow_motif_h
/* co_msgwindow_motif.h -- Message window */
#ifndef co_msgwindow_h
# include "co_msgwindow.h"
#endif
#include <Xm/Xm.h>
class MsgWindowMotif : public MsgWindow {
public:
MsgWindowMotif(
void *msg_parent_ctx,
Widget msg_parent_wid,
char *msg_name,
pwr_tStatus *status);
~MsgWindowMotif();
Widget parent_wid;
Widget toplevel;
Widget form;
Widget nav_widget;
void map();
void unmap();
static void action_inputfocus( Widget w, XmAnyCallbackStruct *data);
static void activate_exit( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void activate_clear( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void activate_zoom_in( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void activate_zoom_out( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void activate_zoom_reset( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void activate_help( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void activate_help_message( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void create_form( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
};
#endif
/**
* Proview $Id: co_wow_motif.h,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#ifndef co_wow_motif_h
#define co_wow_motif_h
/* co_wow_motif.h -- useful windows */
#include "co_wow.h"
#include <Xm/Xm.h>
#include <X11/Xatom.h>
#ifndef co_wow_api_h
typedef struct {
Widget toplevel;
Widget list;
char *texts;
void (* action_cb) ( void *, char *);
void *parent_ctx;
} *wow_tListCtx;
typedef struct {
void *ctx;
void *data;
void (* questionbox_ok) ( void *, void *);
void (* questionbox_cancel) ( void *, void *);
void (* questionbox_help) ( void *, void *);
} wow_t_question_cb;
#endif
class CoWowWidgetMotif : public CoWowWidget {
CoWowWidgetMotif( Widget w) : widget(w) {}
Widget widget;
};
class CoWowFocusTimerMotif {
public:
CoWowFocusTimerMotif() :
set_focus_disabled(0), request_cnt(0), focus_timerid(0) {}
~CoWowFocusTimerMotif();
void disable( Widget w, int time);
int disabled();
private:
int set_focus_disabled;
int request_cnt;
XtIntervalId focus_timerid;
static void enable_set_focus( void *ft, XtIntervalId *id);
};
class CoWowTimerMotif : public CoWowTimer {
public:
XtIntervalId m_timerid;
Widget m_w;
CoWowTimerMotif( Widget w) : m_timerid(0), m_w(w) {}
~CoWowTimerMotif();
void add( int time, void (* callback)(void *data), void *data);
void remove();
static void timer_cb( void *data);
};
class CoWowMotif : public CoWow {
public:
Widget m_parent;
CoWowMotif( Widget parent) : m_parent(parent) {}
~CoWowMotif() {}
void DisplayQuestion( void *ctx, char *title, char *text,
void (* questionbox_ok) ( void *, void *),
void (* questionbox_cancel) ( void *, void *),
void *data);
void DisplayError( char *title, char *text);
void *CreateList( char *title, char *texts,
void (action_cb)( void *, char *),
void *ctx);
void CreateFileSelDia( char *title, void *parent_ctx,
void (*file_selected_cb)(void *, char *, wow_eFileSelType),
wow_eFileSelType file_type);
int DisplayWarranty();
void DisplayLicense();
CoWowTimer *timer_new();
static void GetAtoms( Widget w, Atom *graph_atom, Atom *objid_atom, Atom *attrref_atom);
static int GetSelection( Widget w, char *str, int size, Atom atom);
static void PopupPosition( Widget parent, int x_event, int y_event, int *x, int *y);
static void error_ok_cb(Widget w);
static void question_ok_cb( Widget dialog, XtPointer data,
XmAnyCallbackStruct *cbs);
static void question_cancel_cb ( Widget dialog, XtPointer data,
XmAnyCallbackStruct *cbs);
static void question_help_cb( Widget dialog,XtPointer data,
XmAnyCallbackStruct *cbs);
static void list_ok_cb( Widget w, XtPointer data,
XmAnyCallbackStruct *cbs);
static void list_cancel_cb( Widget w, XtPointer data,
XmAnyCallbackStruct *cbs);
static void list_action_cb( Widget w, XtPointer data,
XmListCallbackStruct *cbs);
static void file_ok_cb( Widget widget, XtPointer udata, XtPointer data);
static void file_cancel_cb( Widget widget, XtPointer udata, XtPointer data);
static void file_search_cb( Widget widget, XtPointer data);
static void warranty_ok_cb( void *ctx, void *data);
static void warranty_cancel_cb( void *ctx, void *data);
static void warranty_help_cb( void *ctx, void *data);
};
#endif
/**
* Proview $Id: co_xhelp_motif.cpp,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#if defined OS_VMS && defined __ALPHA
# pragma message disable (NOSIMPINT,EXTROUENCUNNOBJ)
#endif
#if defined OS_VMS && !defined __ALPHA
# pragma message disable (LONGEXTERN)
#endif
#include "glow_std.h"
#include <stdio.h>
#include <stdlib.h>
#include <Xm/Xm.h>
#include <Xm/XmP.h>
#include <Xm/Text.h>
#include <Xm/Protocols.h>
#include <Mrm/MrmPublic.h>
#include <X11/Intrinsic.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include "flow.h"
#include "flow_browctx.h"
#include "flow_browapi.h"
//extern "C" {
#include "co_cdh.h"
#include "co_dcli.h"
#include "co_time.h"
#include "flow_x.h"
#include "co_mrm_util.h"
//}
#include "co_lng.h"
#include "co_xhelpnav_motif.h"
#include "co_xhelp_motif.h"
void CoXHelpMotif::open_input_dialog( CoXHelpMotif *xhelp, char *text, char *title,
char *init_text,
void (*ok_cb)( CoXHelp *, char *))
{
Arg args[10];
int i;
XmString cstr;
i = 0;
XtSetArg(args[0], XmNlabelString,
cstr=XmStringCreateLtoR( text, "ISO8859-1") ); i++;
XtSetValues( xhelp->india_label, args, i);
XmStringFree( cstr);
i = 0;
XtSetArg(args[0], XmNdialogTitle,
cstr=XmStringCreateLtoR( title, "ISO8859-1") ); i++;
XtSetValues( xhelp->india_widget, args, i);
XmStringFree( cstr);
XmTextSetString( xhelp->india_text, init_text);
XtManageChild( xhelp->india_widget);
XmProcessTraversal( xhelp->india_text, XmTRAVERSE_CURRENT);
xhelp->india_ok_cb = ok_cb;
}
void CoXHelpMotif::activate_exit( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
if ( xhelp->close_cb)
(xhelp->close_cb)( xhelp->parent_ctx, (void *)xhelp);
else {
flow_UnmapWidget( xhelp->parent_wid);
xhelp->displayed = 0;
}
// delete xhelp;
}
void CoXHelpMotif::activate_zoom_in( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
double zoom_factor;
xhelp->xhelpnav->get_zoom( &zoom_factor);
if ( zoom_factor > 40)
return;
xhelp->xhelpnav->zoom( 1.18);
}
void CoXHelpMotif::activate_zoom_out( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
double zoom_factor;
xhelp->xhelpnav->get_zoom( &zoom_factor);
if ( zoom_factor < 15)
return;
xhelp->xhelpnav->zoom( 1.0 / 1.18);
}
void CoXHelpMotif::activate_zoom_reset( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
xhelp->xhelpnav->unzoom();
}
void CoXHelpMotif::activate_search( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
CoXHelpMotif::open_input_dialog( xhelp, "Search string", "Search string",
"", &CoXHelp::find_ok);
}
void CoXHelpMotif::activate_searchnext( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
xhelp->xhelpnav->search_next();
}
void CoXHelpMotif::activate_searchprevious( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
xhelp->xhelpnav->search_next_reverse();
}
void CoXHelpMotif::create_india_label( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
xhelp->india_label = w;
}
void CoXHelpMotif::create_india_text( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
xhelp->india_text = w;
}
void CoXHelpMotif::activate_india_ok( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
char *value;
value = XmTextGetString( xhelp->india_text);
XtUnmanageChild( xhelp->india_widget);
(xhelp->india_ok_cb)( xhelp, value);
}
void CoXHelpMotif::activate_india_cancel( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
XtUnmanageChild( xhelp->india_widget);
}
void CoXHelpMotif::activate_help( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
CoXHelp::dhelp( "helpwindow_refman", 0, navh_eHelpFile_Other, "$pwr_lang/man_dg.dat",
true);
}
void CoXHelpMotif::create_xhelpnav_form( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data)
{
xhelp->xhelpnav_form = w;
}
void CoXHelpMotif::enable_set_focus( CoXHelpMotif *xhelp)
{
xhelp->set_focus_disabled--;
}
void CoXHelpMotif::disable_set_focus( CoXHelpMotif *xhelp, int time)
{
xhelp->set_focus_disabled++;
xhelp->focus_timerid = XtAppAddTimeOut(
XtWidgetToApplicationContext( xhelp->toplevel), time,
(XtTimerCallbackProc)CoXHelpMotif::enable_set_focus, xhelp);
}
void CoXHelpMotif::action_inputfocus( Widget w, XmAnyCallbackStruct *data)
{
Arg args[1];
CoXHelpMotif *xhelp;
XtSetArg (args[0], XmNuserData, &xhelp);
XtGetValues (w, args, 1);
if ( !xhelp)
return;
if ( mrm_IsIconicState(w))
return;
if ( xhelp->set_focus_disabled)
return;
if ( xhelp->xhelpnav && xhelp->displayed) {
xhelp->xhelpnav->set_inputfocus();
}
CoXHelpMotif::disable_set_focus( xhelp, 400);
}
void CoXHelpMotif::set_dimension( int width, int height)
{
Arg args[3];
int i = 0;
if ( width) {
XtSetArg( args[i], XmNwidth, width);i++;
}
if ( height) {
XtSetArg( args[i], XmNheight, height);i++;
}
XtSetValues( toplevel, args,i);
}
CoXHelpMotif::~CoXHelpMotif()
{
if ( set_focus_disabled)
XtRemoveTimeOut( focus_timerid);
delete xhelpnav;
XtDestroyWidget( parent_wid);
}
CoXHelpMotif::CoXHelpMotif(
Widget xa_parent_wid,
void *xa_parent_ctx,
xhelp_eUtility utility,
int *xa_sts) :
CoXHelp(xa_parent_ctx,utility,xa_sts), parent_wid(xa_parent_wid)
{
char uid_filename[120] = {"xtt_xhelp.uid"};
char *uid_filename_p = uid_filename;
Arg args[20];
pwr_tStatus sts;
char title[80];
int i;
MrmHierarchy s_DRMh;
MrmType dclass;
char name[] = "Proview/R Navigator";
static char translations[] =
"<FocusIn>: xhelp_inputfocus()\n";
static XtTranslations compiled_translations = NULL;
static XtActionsRec actions[] =
{
{"xhelp_inputfocus", (XtActionProc) CoXHelpMotif::action_inputfocus}
};
static MrmRegisterArg reglist[] = {
{ "xhelp_ctx", 0 },
{"xhelp_activate_exit",(caddr_t)CoXHelpMotif::activate_exit },
{"xhelp_activate_zoom_in",(caddr_t)CoXHelpMotif::activate_zoom_in },
{"xhelp_activate_zoom_out",(caddr_t)CoXHelpMotif::activate_zoom_out },
{"xhelp_activate_zoom_reset",(caddr_t)CoXHelpMotif::activate_zoom_reset },
{"xhelp_activate_search",(caddr_t)CoXHelpMotif::activate_search },
{"xhelp_activate_searchnext",(caddr_t)CoXHelpMotif::activate_searchnext },
{"xhelp_activate_searchprevious",(caddr_t)CoXHelpMotif::activate_searchprevious },
{"xhelp_activate_india_ok",(caddr_t)CoXHelpMotif::activate_india_ok },
{"xhelp_activate_india_cancel",(caddr_t)CoXHelpMotif::activate_india_cancel },
{"xhelp_create_india_label",(caddr_t)CoXHelpMotif::create_india_label },
{"xhelp_create_india_text",(caddr_t)CoXHelpMotif::create_india_text },
{"xhelp_activate_help",(caddr_t)CoXHelpMotif::activate_help },
{"xhelp_create_xhelpnav_form",(caddr_t)CoXHelpMotif::create_xhelpnav_form }
};
static int reglist_num = (sizeof reglist / sizeof reglist[0]);
Lng::get_uid( uid_filename, uid_filename);
// Motif
MrmInitialize();
strcpy( title, Lng::translate("Help"));
reglist[0].value = (caddr_t) this;
// Save the context structure in the widget
i = 0;
XtSetArg (args[i], XmNuserData, (unsigned int) this);i++;
XtSetArg( args[i], XmNdeleteResponse, XmDO_NOTHING);i++;
sts = MrmOpenHierarchy( 1, &uid_filename_p, NULL, &s_DRMh);
if (sts != MrmSUCCESS) printf("can't open %s\n", uid_filename);
MrmRegisterNames(reglist, reglist_num);
parent_wid = XtCreatePopupShell( title,
topLevelShellWidgetClass, parent_wid, args, i);
sts = MrmFetchWidgetOverride( s_DRMh, "xhelp_window", parent_wid,
name, args, 1, &toplevel, &dclass);
if (sts != MrmSUCCESS) printf("can't fetch %s\n", name);
sts = MrmFetchWidget(s_DRMh, "input_dialog", toplevel,
&india_widget, &dclass);
if (sts != MrmSUCCESS) printf("can't fetch input dialog\n");
MrmCloseHierarchy(s_DRMh);
if (compiled_translations == NULL)
XtAppAddActions( XtWidgetToApplicationContext(toplevel),
actions, XtNumber(actions));
if (compiled_translations == NULL)
compiled_translations = XtParseTranslationTable(translations);
XtOverrideTranslations( toplevel, compiled_translations);
i = 0;
XtSetArg(args[i],XmNwidth,500);i++;
XtSetArg(args[i],XmNheight,700);i++;
XtSetValues( toplevel ,args,i);
XtManageChild( toplevel);
xhelpnav = new CoXHelpNavMotif( (void *)this, xhelpnav_form, title, utility, &brow_widget,
&sts);
xhelpnav->open_URL_cb = CoXHelp::open_URL;
// XtPopup( parent_wid, XtGrabNone);
// displayed = 1;
XtRealizeWidget( parent_wid);
// Connect the window manager close-button to exit
flow_AddCloseVMProtocolCb( parent_wid,
(XtCallbackProc)CoXHelpMotif::activate_exit, this);
*xa_sts = 1;
}
/**
* Proview $Id: co_xhelp_motif.h,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#ifndef co_xhelp_motif_h
#define co_xhelp_motif_h
#ifndef co_xhelp_h
# include "co_xhelp.h"
#endif
class CoXHelpMotif : public CoXHelp {
public:
CoXHelpMotif(
Widget xa_parent_wid,
void *xa_parent_ctx,
xhelp_eUtility utility,
int *xa_sts);
Widget parent_wid;
Widget brow_widget;
Widget form_widget;
Widget toplevel;
Widget xhelpnav_form;
XtIntervalId focus_timerid;
Widget india_widget;
Widget india_label;
Widget india_text;
void set_dimension( int width, int height);
static void open_input_dialog( CoXHelpMotif *xhelp, char *text, char *title,
char *init_text,
void (*ok_cb)( CoXHelp *, char *));
static void activate_exit( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void activate_zoom_in( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void activate_zoom_out( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void activate_zoom_reset( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void activate_search( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void activate_searchnext( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void activate_searchprevious( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void create_india_label( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void create_india_text( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void activate_india_ok( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void activate_india_cancel( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void activate_help( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void create_xhelpnav_form( Widget w, CoXHelpMotif *xhelp, XmAnyCallbackStruct *data);
static void enable_set_focus( CoXHelpMotif *xhelp);
static void disable_set_focus( CoXHelpMotif *xhelp, int time);
static void action_inputfocus( Widget w, XmAnyCallbackStruct *data);
static Widget get_widget() {
if ( default_xhelp)
return ((CoXHelpMotif *)default_xhelp)->parent_wid;
else
return 0;
}
~CoXHelpMotif();
};
#endif
/**
* Proview $Id: co_xhelpnav_motif.cpp,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
/* co_xhelpnav_motif.cpp -- helptext navigator */
#include "flow_std.h"
#include <stdio.h>
#include <stdlib.h>
#include "co_cdh.h"
#include "co_dcli.h"
#include "co_time.h"
#include "co_msg.h"
#include <Xm/Xm.h>
#include <Xm/XmP.h>
#include <Xm/Text.h>
#include <Mrm/MrmPublic.h>
#include <X11/Intrinsic.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include "flow.h"
#include "flow_browctx.h"
#include "flow_browapi.h"
#include "flow_browwidget_motif.h"
#include "flow_utils.h"
#include "co_xhelpnav_motif.h"
extern "C" {
#include "flow_x.h"
#include "co_mrm_util.h"
#include "co_api.h"
}
static Boolean set_displayed( void *xhelpnav)
{
((CoXHelpNav *)xhelpnav)->displayed = 1;
return True;
}
void CoXHelpNavMotif::pop()
{
Widget parent, top;
parent = XtParent( parent_wid);
while( parent)
{
top = parent;
if ( flow_IsShell( top))
break;
parent = XtParent( parent);
}
displayed = 0;
flow_UnmapWidget( top);
flow_MapWidget( top);
// A fix to avoid a krash in setinputfocus
XtAppAddWorkProc( XtWidgetToApplicationContext(top),
(XtWorkProc)set_displayed, (XtPointer)this);
}
//
// Create the navigator widget
//
CoXHelpNavMotif::CoXHelpNavMotif(
void *xn_parent_ctx,
Widget xn_parent_wid,
char *xn_name,
xhelp_eUtility xn_utility,
Widget *w,
pwr_tStatus *status) :
CoXHelpNav(xn_parent_ctx,xn_name,xn_utility,status),
parent_wid(xn_parent_wid)
{
form_widget = ScrolledBrowCreate( parent_wid, name, NULL, 0,
CoXHelpNav::init_brow_base_cb, this, (Widget *)&brow_widget);
XtManageChild( form_widget);
displayed = 1;
*w = form_widget;
*status = 1;
}
//
// Delete a nav context
//
CoXHelpNavMotif::~CoXHelpNavMotif()
{
closing_down = 1;
for ( int i = 0; i < brow_cnt; i++) {
brow_DeleteSecondaryCtx( brow_stack[i]->ctx);
brow_stack[i]->free_pixmaps();
delete brow_stack[i];
}
delete brow;
XtDestroyWidget( form_widget);
}
void CoXHelpNavMotif::set_inputfocus()
{
if ( displayed && flow_IsViewable( brow_widget)) {
XtCallAcceptFocus( brow_widget, CurrentTime);
}
}
/**
* Proview $Id: co_xhelpnav_motif.h,v 1.1 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
#ifndef co_xhelpnav_motif_h
#define co_xhelpnav_motif_h
/* co_xhelpnav_motif.h -- Helptext navigator */
#ifndef pwr_h
# include "pwr.h"
#endif
#ifndef co_xhelpnav_h
#include "co_xhelpnav.h"
#endif
class CoXHelpNavMotif : public CoXHelpNav {
public:
CoXHelpNavMotif(
void *xn_parent_ctx,
Widget xn_parent_wid,
char *xn_name,
xhelp_eUtility xn_utility,
Widget *w,
pwr_tStatus *status);
~CoXHelpNavMotif();
Widget parent_wid;
Widget brow_widget;
Widget form_widget;
Widget toplevel;
void set_inputfocus();
void pop();
};
#endif
include $(pwre_dir_symbols)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(hw_name)/$(type_name)_generic.mk
ifeq ($($(type_name)_generic_mk),)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(type_name)_generic.mk
endif
ifeq ($($(type_name)_generic_mk),)
include $(pwre_sroot)/tools/bld/src/$(type_name)_generic.mk
endif
-include ../../special.mk
-include ../special.mk
-include special.mk
/**
* Proview $Id: co_api.cpp,v 1.9 2005-09-01 14:57:52 claes Exp $
* Proview $Id: co_api.cpp,v 1.10 2007-01-04 07:51:41 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -45,7 +45,6 @@ extern "C" {
#include "flow.h"
#include "flow_browctx.h"
#include "flow_browapi.h"
#include "flow_browwidget.h"
#include "co_msgwindow.h"
#include "co_xhelp.h"
......
/**
* Proview $Id: co_cdh.c,v 1.17 2005-10-25 15:28:10 claes Exp $
* Proview $Id: co_cdh.c,v 1.18 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -1283,8 +1283,8 @@ cdh_ArefToString (
int prefix
)
{
static char ls[sizeof("_A255.255.255.255:4294967295(_T255.255:1.15.2047)[1234567890.1234567890]")];
char tmp[sizeof("[0123456789.01234567890]")];
static char ls[200];
char tmp[40];
sprintf(ls, "%s", (prefix ? "_A" : ""));
......
/**
* Proview $Id: co_cdh.h,v 1.23 2005-11-14 16:27:38 claes Exp $
* Proview $Id: co_cdh.h,v 1.24 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -52,6 +52,14 @@ extern "C" {
/*! \addtogroup Cdh_DS */
/*@{*/
#ifndef co_max
#define co_max(Dragon,Eagle) ((Dragon) > (Eagle) ? (Dragon) : (Eagle))
#endif
#ifndef co_min
#define co_min(Dragon,Eagle) ((Dragon) < (Eagle) ? (Dragon) : (Eagle))
#endif
#define cdh_cMaxVidGroup 255
#define cdh_cMaxCix 4095
#define cdh_cMaxBix 7
......
/**
* Proview $Id: co_cnf.h,v 1.2 2005-09-01 14:57:52 claes Exp $
* Proview $Id: co_cnf.h,v 1.3 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelösund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -23,8 +23,14 @@
/* co_cnf.h
Configuration file. */
#ifdef __cplusplus
extern "C" {
#endif
char *cnf_get_value( char *name, char *value);
#ifdef __cplusplus
}
#endif
#endif
/**
* Proview $Id: co_dcli.h,v 1.9 2005-10-25 15:28:10 claes Exp $
* Proview $Id: co_dcli.h,v 1.10 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -88,6 +88,7 @@ int dcli_replace_env( char *str, char *newstr);
char *dcli_fgetname( FILE *fp, char *name, char *def_name);
int dcli_translate_filename( char *out, const char *in);
pwr_tStatus dcli_file_time( char *filename, pwr_tTime *time);
pwr_tStatus dcli_file_ctime( char *filename, pwr_tTime *time);
/* Functions in module co_dcli_dir */
......
/**
* Proview $Id: co_dcli_file.c,v 1.5 2005-09-21 14:19:39 claes Exp $
* Proview $Id: co_dcli_file.c,v 1.6 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -485,3 +485,15 @@ pwr_tStatus dcli_file_time( char *filename, pwr_tTime *time)
return DCLI__NOFILE;
}
pwr_tStatus dcli_file_ctime( char *filename, pwr_tTime *time)
{
struct stat info;
if ( stat( filename, &info) != -1) {
time->tv_sec = info.st_ctime;
time->tv_nsec = 0;
return DCLI__SUCCESS;
}
return DCLI__NOFILE;
}
/**
* Proview $Id: co_msglist.cpp,v 1.5 2005-09-01 14:57:52 claes Exp $
* Proview $Id: co_msglist.cpp,v 1.6 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -50,15 +50,11 @@ extern "C" {
#include "flow.h"
#include "flow_browctx.h"
#include "flow_browapi.h"
#include "flow_browwidget.h"
#include "xnav_bitmap_morehelp12.h"
#include "co_msglist.h"
static int msglist_init_brow_cb( FlowCtx *fctx, void *client_data);
static int msglist_brow_cb( FlowCtx *ctx, flow_tEvent event);
//
// Free pixmaps
//
......@@ -72,17 +68,16 @@ void MsgListBrow::free_pixmaps()
//
void MsgListBrow::allocate_pixmaps()
{
flow_sPixmapData pixmap_data;
int i;
flow_sPixmapData pixmap_data;
int i;
for ( i = 0; i < 9; i++)
{
pixmap_data[i].width =xnav_bitmap_morehelp12_width;
pixmap_data[i].height =xnav_bitmap_morehelp12_height;
pixmap_data[i].bits = (char *)xnav_bitmap_morehelp12_bits;
}
for ( i = 0; i < 9; i++) {
pixmap_data[i].width =xnav_bitmap_morehelp12_width;
pixmap_data[i].height =xnav_bitmap_morehelp12_height;
pixmap_data[i].bits = (char *)xnav_bitmap_morehelp12_bits;
}
brow_AllocAnnotPixmap( ctx, &pixmap_data, &pixmap_morehelp);
brow_AllocAnnotPixmap( ctx, &pixmap_data, &pixmap_morehelp);
}
//
......@@ -208,34 +203,42 @@ void MsgListBrow::brow_setup()
brow_SetCtxUserData( ctx, msglist);
brow_EnableEvent( ctx, flow_eEvent_MB1Click, flow_eEventType_CallBack,
msglist_brow_cb);
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_MB1DoubleClick, flow_eEventType_CallBack,
msglist_brow_cb);
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_MB3Press, flow_eEventType_CallBack,
msglist_brow_cb);
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_MB3Down, flow_eEventType_CallBack,
msglist_brow_cb);
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_SelectClear, flow_eEventType_CallBack,
msglist_brow_cb);
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_ObjectDeleted, flow_eEventType_CallBack,
msglist_brow_cb);
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_Key_Up, flow_eEventType_CallBack,
msglist_brow_cb);
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_Key_Down, flow_eEventType_CallBack,
msglist_brow_cb);
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_Key_Right, flow_eEventType_CallBack,
msglist_brow_cb);
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_Key_Left, flow_eEventType_CallBack,
msglist_brow_cb);
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_Key_PF3, flow_eEventType_CallBack,
msglist_brow_cb);
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_Key_PageUp, flow_eEventType_CallBack,
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_Key_PageDown, flow_eEventType_CallBack,
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_ScrollUp, flow_eEventType_CallBack,
MsgList::brow_cb);
brow_EnableEvent( ctx, flow_eEvent_ScrollDown, flow_eEventType_CallBack,
MsgList::brow_cb);
}
//
// Backcall routine called at creation of the brow widget
// Enable event, create nodeclasses and insert the root objects.
//
static int msglist_init_brow_cb( FlowCtx *fctx, void *client_data)
int MsgList::init_brow_cb( FlowCtx *fctx, void *client_data)
{
MsgList *msglist = (MsgList *) client_data;
BrowCtx *ctx = (BrowCtx *)fctx;
......@@ -249,16 +252,9 @@ static int msglist_init_brow_cb( FlowCtx *fctx, void *client_data)
}
MsgList::MsgList(
void *ev_parent_ctx,
Widget ev_parent_wid,
Widget *w) :
parent_ctx(ev_parent_ctx), parent_wid(ev_parent_wid), find_wnav_cb(0), find_plc_cb(0)
void *ev_parent_ctx) :
parent_ctx(ev_parent_ctx), find_wnav_cb(0), find_plc_cb(0)
{
form_widget = ScrolledBrowCreate( parent_wid, "MsgList", NULL, 0,
msglist_init_brow_cb, this, (Widget *)&brow_widget);
XtManageChild( form_widget);
*w = form_widget;
}
......@@ -267,8 +263,6 @@ MsgList::MsgList(
//
MsgList::~MsgList()
{
delete brow;
XtDestroyWidget( form_widget);
}
MsgListBrow::~MsgListBrow()
......@@ -277,12 +271,6 @@ MsgListBrow::~MsgListBrow()
}
void MsgList::set_input_focus()
{
if ( flow_IsViewable( brow_widget))
XtCallAcceptFocus( brow_widget, CurrentTime);
}
//
// Zoom
//
......@@ -326,7 +314,7 @@ void MsgList::clear()
//
// Callbacks from brow
//
static int msglist_brow_cb( FlowCtx *ctx, flow_tEvent event)
int MsgList::brow_cb( FlowCtx *ctx, flow_tEvent event)
{
MsgList *msglist;
ItemMsg *item;
......@@ -434,7 +422,7 @@ static int msglist_brow_cb( FlowCtx *ctx, flow_tEvent event)
doubleclick_event = (flow_tEvent) calloc( 1, sizeof(*doubleclick_event));
memcpy( doubleclick_event, event, sizeof(*doubleclick_event));
doubleclick_event->event = flow_eEvent_MB1DoubleClick;
sts = msglist_brow_cb( ctx, doubleclick_event);
sts = MsgList::brow_cb( ctx, doubleclick_event);
free( (char *) doubleclick_event);
return sts;
}
......@@ -454,6 +442,22 @@ static int msglist_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( msglist->brow->ctx);
}
break;
case flow_eEvent_Key_PageDown: {
brow_Page( msglist->brow->ctx, 0.95);
break;
}
case flow_eEvent_Key_PageUp: {
brow_Page( msglist->brow->ctx, -0.95);
break;
}
case flow_eEvent_ScrollDown: {
brow_Page( msglist->brow->ctx, 0.10);
break;
}
case flow_eEvent_ScrollUp: {
brow_Page( msglist->brow->ctx, -0.10);
break;
}
case flow_eEvent_Key_Left:
{
brow_tNode *node_list;
......
/**
* Proview $Id: co_msglist.h,v 1.4 2005-12-13 15:13:13 claes Exp $
* Proview $Id: co_msglist.h,v 1.5 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -79,27 +79,25 @@ class MsgListBrow {
class MsgList {
public:
MsgList(
void *ev_parent_ctx,
Widget ev_parent_wid,
Widget *w);
~MsgList();
void *ev_parent_ctx);
virtual ~MsgList();
void *parent_ctx;
Widget parent_wid;
Widget brow_widget;
Widget form_widget;
Widget toplevel;
MsgListBrow *brow;
void (*find_wnav_cb)( void *, pwr_tObjid);
void (*find_plc_cb)( void *, pwr_tObjid);
void set_input_focus();
virtual void set_input_focus() {}
void zoom( double zoom_factor);
void unzoom();
void set_nodraw();
void reset_nodraw();
void remove_oldest();
void clear();
static int init_brow_cb( FlowCtx *fctx, void *client_data);
static int brow_cb( FlowCtx *ctx, flow_tEvent event);
};
class ItemMsg {
......
/**
* Proview $Id: co_msgwindow.cpp,v 1.9 2006-05-24 06:59:47 claes Exp $
* Proview $Id: co_msgwindow.cpp,v 1.10 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -44,27 +44,17 @@ extern "C" {
#include "co_msgwindow.h"
static void msg_action_inputfocus( Widget w, XmAnyCallbackStruct *data);
static void msg_activate_exit( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void msg_activate_clear( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void msg_activate_zoom_in( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void msg_activate_zoom_out( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void msg_activate_zoom_reset( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void msg_activate_help( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void msg_activate_help_message( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
static void msg_create_form( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data);
MsgWindow *MsgWindow::default_window = 0;
int MsgWindow::hide_info = 0;
static void msgw_find_wnav_cb( void *ctx, pwr_tOid oid)
void MsgWindow::msgw_find_wnav_cb( void *ctx, pwr_tOid oid)
{
MsgWindow *msgw = (MsgWindow *)ctx;
if ( msgw->find_wnav_cb)
(msgw->find_wnav_cb)( msgw->parent_ctx, oid);
}
static void msgw_find_plc_cb( void *ctx, pwr_tOid oid)
void MsgWindow::msgw_find_plc_cb( void *ctx, pwr_tOid oid)
{
MsgWindow *msgw = (MsgWindow *)ctx;
if ( msgw->find_plc_cb)
......@@ -140,143 +130,16 @@ void MsgWindow::message( int severity, const char *text1, const char *text2, con
MsgWindow::MsgWindow(
void *msg_parent_ctx,
Widget msg_parent_wid,
char *msg_name,
pwr_tStatus *status) :
parent_ctx(msg_parent_ctx), parent_wid(msg_parent_wid), msgnav(NULL), displayed(0),
deferred_map(0), nodraw(0), size(0), max_size(500), find_wnav_cb(0), find_plc_cb(0)
parent_ctx(msg_parent_ctx), msgnav(NULL), displayed(0),
deferred_map(0), nodraw(0), size(0), max_size(500), find_wnav_cb(0), find_plc_cb(0),
wow(0)
{
char uid_filename[120] = {"$pwr_exe/wb_msgwindow.uid"};
char *uid_filename_p = uid_filename;
Arg args[20];
pwr_tStatus sts;
int i;
MrmHierarchy s_DRMh;
MrmType dclass;
static char msg_translations[] =
"<FocusIn>: msg_inputfocus()\n";
static XtTranslations msg_compiled_translations = NULL;
static XtActionsRec msg_actions[] =
{
{"msg_inputfocus", (XtActionProc) msg_action_inputfocus}
};
static MrmRegisterArg reglist[] = {
{ "msg_ctx", 0 },
{"msg_activate_exit",(caddr_t)msg_activate_exit },
{"msg_activate_clear",(caddr_t)msg_activate_clear },
{"msg_activate_zoom_in",(caddr_t)msg_activate_zoom_in },
{"msg_activate_zoom_out",(caddr_t)msg_activate_zoom_out },
{"msg_activate_zoom_reset",(caddr_t)msg_activate_zoom_reset },
{"msg_activate_help",(caddr_t)msg_activate_help },
{"msg_activate_help_message",(caddr_t)msg_activate_help_message },
{"msg_create_form",(caddr_t)msg_create_form }
};
static int reglist_num = (sizeof reglist / sizeof reglist[0]);
*status = 1;
strcpy( name, msg_name);
reglist[0].value = (caddr_t) this;
// Motif
MrmInitialize();
// Save the context structure in the widget
i = 0;
XtSetArg(args[i], XmNuserData, (unsigned int) this);i++;
XtSetArg(args[i], XmNdeleteResponse, XmDO_NOTHING);i++;
dcli_translate_filename( uid_filename, uid_filename);
sts = MrmOpenHierarchy( 1, &uid_filename_p, NULL, &s_DRMh);
if (sts != MrmSUCCESS) printf("can't open %s\n", uid_filename);
MrmRegisterNames(reglist, reglist_num);
parent_wid = XtCreatePopupShell( name,
topLevelShellWidgetClass, parent_wid, args, i);
sts = MrmFetchWidgetOverride( s_DRMh, "msg_window", parent_wid,
name, args, 1, &toplevel, &dclass);
if (sts != MrmSUCCESS) printf("can't fetch %s\n", name);
MrmCloseHierarchy(s_DRMh);
if ( msg_compiled_translations == NULL)
{
XtAppAddActions( XtWidgetToApplicationContext( toplevel),
msg_actions, XtNumber(msg_actions));
msg_compiled_translations = XtParseTranslationTable( msg_translations);
}
XtOverrideTranslations( toplevel, msg_compiled_translations);
i = 0;
XtSetArg(args[i],XmNwidth,900);i++;
XtSetArg(args[i],XmNheight,600);i++;
XtSetValues( toplevel, args,i);
XtManageChild( toplevel);
// Create msgnav
msgnav = new MsgList( this, form, &nav_widget);
msgnav->find_wnav_cb = msgw_find_wnav_cb;
msgnav->find_plc_cb = msgw_find_plc_cb;
// XtManageChild( form_widget);
XtRealizeWidget( parent_wid);
// Connect the window manager close-button to exit
flow_AddCloseVMProtocolCb( parent_wid,
(XtCallbackProc)msg_activate_exit, this);
}
//
// Delete window
//
MsgWindow::~MsgWindow()
{
if ( parent_wid)
XtDestroyWidget( parent_wid);
if ( msgnav)
delete msgnav;
}
void MsgWindow::map()
{
if ( nodraw) {
deferred_map = 1;
return;
}
else
deferred_map = 0;
if ( !displayed)
{
flow_MapWidget( parent_wid);
displayed = 1;
}
else
{
flow_UnmapWidget( parent_wid);
flow_MapWidget( parent_wid);
}
}
void MsgWindow::unmap()
{
if ( displayed)
{
flow_UnmapWidget( parent_wid);
displayed = 0;
}
}
void MsgWindow::reset_nodraw()
{
......@@ -307,61 +170,6 @@ void MsgWindow::insert( int severity, const char *text, pwr_tOid oid, bool is_pl
size++;
}
static void msg_action_inputfocus( Widget w, XmAnyCallbackStruct *data)
{
Arg args[1];
MsgWindow *msgw;
XtSetArg (args[0], XmNuserData, &msgw);
XtGetValues (w, args, 1);
if ( msgw && msgw->displayed)
msgw->msgnav->set_input_focus();
}
static void msg_activate_exit( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
flow_UnmapWidget( msgw->parent_wid);
msgw->displayed = 0;
}
static void msg_activate_clear( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
msgw->msgnav->clear();
msgw->size = 0;
}
static void msg_activate_zoom_in( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
msgw->msgnav->zoom( 1.2);
}
static void msg_activate_zoom_out( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
msgw->msgnav->zoom( 5.0/6);
}
static void msg_activate_zoom_reset( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
msgw->msgnav->unzoom();
}
static void msg_activate_help( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
CoXHelp::dhelp( "messagewindow_refman", 0, navh_eHelpFile_Other, "$pwr_lang/man_dg.dat",
true);
}
static void msg_activate_help_message( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
CoXHelp::dhelp( "message window", 0, navh_eHelpFile_Base, 0, true);
}
static void msg_create_form( Widget w, MsgWindow *msgw, XmAnyCallbackStruct *data)
{
msgw->form = w;
}
......
/**
* Proview $Id: co_msgwindow.h,v 1.6 2005-12-27 09:28:12 claes Exp $
* Proview $Id: co_msgwindow.h,v 1.7 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -22,20 +22,10 @@
/* co_msgwindow.h -- Message window */
#if defined __cplusplus
extern "C" {
#endif
#ifndef pwr_h
# include "pwr.h"
#endif
#include <Xm/Xm.h>
#if defined __cplusplus
}
#endif
#ifndef co_msglist_h
# include "co_msglist.h"
#endif
......@@ -50,21 +40,19 @@ typedef enum {
msgw_ePop_Default
} msgw_ePop;
class CoWow;
class CoWowFocusTimer;
class MsgWindow {
public:
MsgWindow(
void *msg_parent_ctx,
Widget msg_parent_wid,
char *msg_name,
pwr_tStatus *status);
~MsgWindow();
virtual ~MsgWindow() {}
void *parent_ctx;
Widget parent_wid;
char name[80];
Widget toplevel;
Widget form;
Widget nav_widget;
MsgList *msgnav;
int displayed;
int deferred_map;
......@@ -73,12 +61,14 @@ class MsgWindow {
int max_size;
void (*find_wnav_cb)( void *, pwr_tObjid);
void (*find_plc_cb)( void *, pwr_tObjid);
CoWow *wow;
static MsgWindow *default_window;
static int hide_info;
void map();
void unmap();
virtual void map() {}
virtual void unmap() {}
int is_mapped() { return displayed;};
void insert( int severity, const char *text, pwr_tOid oid = pwr_cNOid, bool is_plc = false);
void set_nodraw() { msgnav->set_nodraw(); nodraw++;}
......@@ -90,16 +80,14 @@ class MsgWindow {
pwr_tOid oid = pwr_cNOid, bool is_plc = false);
static void message( int severity, const char *text1, const char *text2, const char *text3 = 0,
pwr_tOid oid = pwr_cNOid, bool is_plc = false);
static bool has_window() { return default_window != 0;}
static CoWow *get_wow() { return default_window ? default_window->wow : 0;}
static void map_default() { if ( default_window) default_window->map();}
static void dset_nodraw() { if ( default_window) default_window->set_nodraw();}
static void dreset_nodraw() { if ( default_window) default_window->reset_nodraw();}
static void get_parent_widget( Widget *w) {
if ( default_window)
*w = default_window->parent_wid;
else
*w = 0;
}
static void hide_info_messages( int hide) { hide_info = hide;}
static void msgw_find_wnav_cb( void *ctx, pwr_tOid oid);
static void msgw_find_plc_cb( void *ctx, pwr_tOid oid);
};
#endif
......
/**
* Proview $Id: co_wow.cpp,v 1.1 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelösund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**/
/* co_wow.cpp -- useful windows */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "pwr.h"
#include "co_wow.h"
int CoWow::HideWarranty()
{
static int hide = 0;
int prev = hide;
hide = 1;
return prev;
}
/**
* Proview $Id: co_wow.h,v 1.10 2006-05-21 22:30:49 lw Exp $
* Proview $Id: co_wow.h,v 1.11 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -22,13 +22,9 @@
/* co_wow -- useful windows */
#include <Xm/Xm.h>
#include <X11/Xatom.h>
#if defined __cplusplus
extern "C" {
#endif
#include <string.h>
#ifndef co_wow_api_h
typedef enum {
wow_eFileSelType_,
wow_eFileSelType_All,
......@@ -37,70 +33,54 @@ typedef enum {
wow_eFileSelType_WblClass,
wow_eFileSelType__
} wow_eFileSelType;
#endif
typedef struct {
Widget dialog;
void (*file_selected_cb)( void *, char *, wow_eFileSelType);
void *parent_ctx;
wow_eFileSelType file_type;
} *wow_tFileSelCtx;
typedef struct {
Widget toplevel;
Widget list;
char *texts;
void (* action_cb) ( void *, char *);
void *parent_ctx;
} *wow_tListCtx;
void wow_DisplayQuestion (
void *ctx,
Widget father,
char *title,
char *text,
void (* questionbox_ok) ( void *, void *),
void (* questionbox_cancel) ( void *, void *),
void *data
);
class CoWowWidget {
};
void wow_DisplayError (
Widget father,
char *title,
char *text
);
class CoWowTimer {
public:
void (* m_callback)( void *);
void *m_data;
void wow_CreatePushButton (
Widget father,
char *text,
char *widget_name,
void (callback)(),
void *ctx
);
CoWowTimer() {}
virtual ~CoWowTimer() {}
virtual void add( int time, void (* callback)(void *data), void *data) {}
virtual void remove() {}
};
wow_tListCtx wow_CreateList (
Widget parent,
char *title,
char *texts,
void (action_cb)( void *, char *),
void *ctx
);
class CoWowRecall {
public:
static const int m_recall_size = 30;
static const int m_line_size = 160;
char m_recall[m_recall_size][m_line_size];
int m_current_recall_line;
void wow_CreateFileSelDia( Widget parent_wid,
char *title,
void *parent_ctx,
void (*file_selected_cb)(void *, char *, wow_eFileSelType),
wow_eFileSelType file_type);
CoWowRecall() : m_current_recall_line(0) {
memset( m_recall, 0, sizeof(m_recall));
}
};
void wow_GetLabel( Widget w, char *label);
void wow_GetCSText( XmString ar_value, char *t_buffer);
int wow_GetSelection( Widget w, char *str, int size, Atom atom);
void wow_GetAtoms( Widget w, Atom *graph_atom, Atom *objid_atom, Atom *attrref_atom);
int wow_HideWarranty();
int wow_DisplayWarranty( Widget father);
void wow_DisplayLicense( Widget father);
class CoWow {
public:
CoWow() {}
virtual ~CoWow() {}
virtual void DisplayQuestion( void *ctx, char *title, char *text,
void (* questionbox_ok) ( void *, void *),
void (* questionbox_cancel) ( void *, void *),
void *data) {}
virtual void DisplayError( char *title, char *text) {}
virtual void *CreateList( char *title, char *texts,
void (action_cb)( void *, char *),
void *ctx) { return NULL;}
virtual void CreateFileSelDia( char *title, void *parent_ctx,
void (*file_selected_cb)(void *, char *, wow_eFileSelType),
wow_eFileSelType file_type) {}
static int HideWarranty();
virtual int DisplayWarranty() { return 0;}
virtual void DisplayLicense() {}
virtual CoWowTimer *timer_new() { return 0;}
};
#if defined __cplusplus
}
#endif
#endif
This diff is collapsed.
/**
* Proview $Id: co_xhelp.h,v 1.6 2005-09-01 14:57:52 claes Exp $
* Proview $Id: co_xhelp.h,v 1.7 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -20,10 +20,6 @@
#ifndef co_xhelp_h
#define co_xhelp_h
//#if defined __cplusplus
//extern "C" {
//#endif
#ifndef pwr_h
# include "pwr.h"
#endif
......@@ -35,49 +31,44 @@
class CoXHelp {
public:
CoXHelp(
Widget xa_parent_wid,
void *xa_parent_ctx,
xhelp_eUtility utility,
int *xa_sts);
Widget parent_wid;
void *parent_ctx;
char name[80];
Widget brow_widget;
Widget form_widget;
Widget toplevel;
CoXHelpNav *xhelpnav;
Widget xhelpnav_form;
void *client_data;
void (*close_cb) ( void *, void *);
void (*open_URL_cb)( void *, char *);
int set_focus_disabled;
XtIntervalId focus_timerid;
int displayed;
Widget india_widget;
Widget india_label;
Widget india_text;
void (*india_ok_cb)( CoXHelp *, char *);
static CoXHelp *default_xhelp;
void pop();
virtual void set_dimension( int width, int height) {}
virtual void pop();
void map();
void clear();
int help( char *key, char *help_bookmark, navh_eHelpFile file_type,
char *file_name, bool strict);
int help_index( navh_eHelpFile file_type, char *file_name);
void set_dimension( int width, int height);
static void set_default( CoXHelp *xhelp) { default_xhelp = xhelp;}
static int dhelp( char *key, char *help_bookmark, navh_eHelpFile file_type,
char *file_name, bool strict);
static int dhelp_index( navh_eHelpFile file_type, char *file_name);
~CoXHelp();
static void open_URL( void *ctx, char *url);
static void open_input_dialog( CoXHelp *xhelp, char *text, char *title,
char *init_text,
void (*ok_cb)( CoXHelp *, char *));
static void find_ok( CoXHelp *xhelp, char *search_str);
virtual ~CoXHelp();
};
//#if defined __cplusplus
//}
//#endif
#endif
......
This diff is collapsed.
/**
* Proview $Id: co_xhelpnav.h,v 1.8 2005-12-13 15:13:13 claes Exp $
* Proview $Id: co_xhelpnav.h,v 1.9 2007-01-04 07:51:42 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
......@@ -42,8 +42,8 @@
#include "flow_browapi.h"
#endif
#ifndef flow_browwidget_h
#include "flow_browwidget.h"
#ifndef flow_browwidget_motif_h
// #include "flow_browwidget_motif.h"
#endif
#define xhelp_cFile_BaseXtt "$pwr_exe/xtt_help.dat"
......@@ -96,22 +96,16 @@ class CoXHelpNav {
public:
CoXHelpNav(
void *xn_parent_ctx,
Widget xn_parent_wid,
char *xn_name,
xhelp_eUtility xn_utility,
Widget *w,
pwr_tStatus *status);
~CoXHelpNav();
virtual ~CoXHelpNav();
void *parent_ctx;
Widget parent_wid;
char name[80];
Widget brow_widget;
Widget form_widget;
Widget toplevel;
CoXHelpNavBrow *brow;
CoXHelpNavBrow *collect_brow;
CoXHelpNavBrow *brow_stack[XHELPNAV_BROW_MAX];
CoXHelpNavBrow *brow;
CoXHelpNavBrow *collect_brow;
CoXHelpNavBrow *brow_stack[XHELPNAV_BROW_MAX];
int brow_cnt;
int closing_down;
int displayed;
......@@ -122,6 +116,9 @@ class CoXHelpNav {
bool search_strict;
void (*open_URL_cb)( void *, char *);
virtual void set_inputfocus() {}
virtual void pop() {}
void print( char *filename);
void zoom( double zoom_factor);
void unzoom();
......@@ -131,8 +128,6 @@ class CoXHelpNav {
int brow_pop();
int brow_push();
int brow_push_all();
void set_inputfocus();
void pop();
void enable_events( CoXHelpNavBrow *brow);
int help( char *key, char *help_bookmark, navh_eHelpFile file_type,
char *file_name, int pop, bool strict);
......@@ -141,6 +136,10 @@ class CoXHelpNav {
pwr_tStatus search_next();
pwr_tStatus search_next_reverse();
pwr_tStatus search_exec( bool reverse);
static int init_brow_cb( BrowCtx *ctx, void *client_data);
static int init_brow_base_cb( FlowCtx *fctx, void *client_data);
};
class HItem {
......
include $(pwre_dir_symbols)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(hw_name)/$(type_name)_generic.mk
ifeq ($($(type_name)_generic_mk),)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(type_name)_generic.mk
endif
ifeq ($($(type_name)_generic_mk),)
include $(pwre_sroot)/tools/bld/src/$(type_name)_generic.mk
endif
-include ../../special.mk
-include ../special.mk
-include special.mk
This diff is collapsed.
This diff is collapsed.
include $(pwre_dir_symbols)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(hw_name)/$(type_name)_generic.mk
ifeq ($($(type_name)_generic_mk),)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(type_name)_generic.mk
endif
ifeq ($($(type_name)_generic_mk),)
include $(pwre_sroot)/tools/bld/src/$(type_name)_generic.mk
endif
-include ../../special.mk
-include ../special.mk
-include special.mk
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment