int Cmd::detach_volume() { int sts; if ( !ldhses) return WNAV__NOVOLATTACHED; sts = ldh_CloseSession( ldhses); if ( EVEN(sts)) { wnav->message( 'E', wnav_get_message( sts)); return 0; } sts = ldh_DetachVolume( wbctx, volctx); if ( EVEN(sts)) { wnav->message( 'E', wnav_get_message( sts)); return 0; } volid = 0; volctx = 0; ldhses = 0; wnav->volume_detached(); return 1; }
void WdaGtk::class_activate_ok( GtkWidget *w, gpointer data) { WdaGtk *wda = (WdaGtk *)data; char *hiername; char *classname; char *utf8; int sts; pwr_tClassId new_classid; utf8 = gtk_editable_get_chars( GTK_EDITABLE(wda->wdaclass_hiervalue), 0, -1); hiername = g_convert( utf8, -1, "ISO8859-1", "UTF-8", NULL, NULL, NULL); g_free( utf8); utf8 = gtk_editable_get_chars( GTK_EDITABLE(wda->wdaclass_classvalue), 0, -1); classname = g_convert( utf8, -1, "ISO8859-1", "UTF-8", NULL, NULL, NULL); g_free( utf8); wda->attrobjects = (int) gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(wda->wdaclass_attrobjects)); if ( strcmp( hiername, "") == 0) wda->objid = pwr_cNObjid; else { sts = ldh_NameToObjid( wda->ldhses, &wda->objid, hiername); if ( EVEN(sts)) { CoWowGtk ww(wda->wdaclass_dia); ww.DisplayError( "Hierarchy object error", wnav_get_message( sts)); return; } } sts = ldh_ClassNameToId( wda->ldhses, &new_classid, classname); g_free( classname); g_free( hiername); if ( EVEN(sts)) { CoWowGtk ww(wda->wdaclass_dia); ww.DisplayError( "Class error", wnav_get_message( sts)); return; } g_object_set( wda->wdaclass_dia, "visible", FALSE, NULL); if ( wda->classid != new_classid) { // Enter attribute wda->classid = new_classid; wda->open_attr_dialog(); } else { // Find new attributes sts = ((WdaNav *)wda->wdanav)->update( wda->objid, wda->classid, wda->attribute, wda->attrobjects); if ( EVEN(sts)) { CoWowGtk ww(wda->wdaclass_dia); ww.DisplayError( "Spreadsheet error", wnav_get_message( sts)); } } }
void WRev::restore_ok(void* ctx, void* data) { WRev* wrev = (WRev*)ctx; WItemRev* item = (WItemRev*)data; pwr_tStatus sts; wrev->dialog_count--; wrev->set_clock_cursor(); sts = wrev->wrevnav->rev->restore(item->name); if (EVEN(sts)) wrev->wow->DisplayError("Restore Error", wnav_get_message(sts)); else if (sts == REV__NOBRANCH) wrev->wow->DisplayText( "Restore Info", "No changes can be made to this revision"); wrev->wrevnav->root_objects(); wb_session* session = (wb_session*)wrev->ldhses; if (session->cid() == pwr_eClass_DirectoryVolume) { wb_vrep* vrep = (wb_vrep*)(*session); ((wb_vrepmem*)vrep)->reloadWbl(&sts); if (((WUtility*)wrev->parent_ctx)->utype == wb_eUtility_WNav) ((WNav*)wrev->parent_ctx)->command((char*)"set refresh"); } wrev->reset_cursor(); }
void Cmd::save_cb( void *ctx, int quiet) { Cmd *cmd = (Cmd *) ctx; int sts; if ( !cmd->ldhses) { cmd->wnav->message( 'E', "Cmd is not attached to a volume"); return; } sts = ldh_SaveSession( cmd->ldhses); if ( EVEN(sts)) { cmd->wnav->message( 'E', wnav_get_message( sts)); return; } ldh_sVolumeInfo info; pwr_tCid volcid; ldh_GetVolumeInfo( ldh_SessionToVol( cmd->ldhses), &info); ldh_GetVolumeClass( cmd->wbctx, info.Volume, &volcid); if ( volcid == pwr_eClass_DirectoryVolume) { sts = lfu_SaveDirectoryVolume( cmd->ldhses, 0, quiet); if ( EVEN(sts)) { cmd->wnav->message( 'E', "Syntax error"); return; } } cmd->wnav->message( 'E', "Session saved"); }
void WdaMotif::activate_prevattr( Widget w, WdaMotif *wda, XmAnyCallbackStruct *data) { int sts; sts = wda->prev_attr(); if ( EVEN(sts)) wda->wow->DisplayError( "Spreadsheet error", wnav_get_message( sts)); }
void WdaMotif::class_activate_ok( Widget w, WdaMotif *wda, XmAnyCallbackStruct *data) { char *hiername; char *classname; int sts; pwr_tClassId new_classid; hiername = XmTextGetString( wda->wdaclass_hiervalue); classname = XmTextGetString( wda->wdaclass_classvalue); wda->attrobjects = XmToggleButtonGetState(wda->wdaclass_attrobjects); if ( strcmp( hiername, "") == 0) wda->objid = pwr_cNObjid; else { sts = ldh_NameToObjid( wda->ldhses, &wda->objid, hiername); if ( EVEN(sts)) { CoWowMotif ww(wda->wdaclass_dia); ww.DisplayError( "Hierarchy object error", wnav_get_message( sts)); return; } } sts = ldh_ClassNameToId( wda->ldhses, &new_classid, classname); if ( EVEN(sts)) { CoWowMotif ww(wda->wdaclass_dia); ww.DisplayError( "Class error", wnav_get_message( sts)); return; } XtUnmanageChild( wda->wdaclass_dia); if ( wda->classid != new_classid) { // Enter attribute wda->classid = new_classid; wda->open_attr_dialog(); } else { // Find new attributes sts = ((WdaNav *)wda->wdanav)->update( wda->objid, wda->classid, wda->attribute, wda->attrobjects); if ( EVEN(sts)) wda->wow->DisplayError( "Spreadsheet error", wnav_get_message( sts)); } }
void WdaGtk::activate_prevattr( GtkWidget *w, gpointer data) { Wda *wda = (Wda *)data; int sts; sts = wda->prev_attr(); if ( EVEN(sts)) wda->wow->DisplayError( "Spreadsheet error", wnav_get_message( sts)); }
void Cmd::revert_ok( Cmd *cmd) { int sts; sts = ldh_RevertSession ( cmd->ldhses); if ( EVEN(sts)) cmd->wnav->message( 'E', wnav_get_message( sts)); else cmd->wnav->message( 'E', "Session reverted"); }
// // Callbackfunctions from menu entries // void WRev::store_ok_cb(WRev* wrev, char* text1, char* text2) { pwr_tStatus sts; if (streq(text1, "")) { wrev->wow->DisplayError("Syntax Error", "Revision name is missing"); return; } if (streq(text2, "")) { wrev->wow->DisplayError("Syntax Error", "Description is missing"); return; } wrev->set_clock_cursor(); sts = wrev->wrevnav->rev->create(1, text1, text2); if (EVEN(sts)) wrev->wow->DisplayError("New Revision Error", wnav_get_message(sts)); wrev->wrevnav->root_objects(); wrev->reset_cursor(); }
void WdaMotif::change_value( int set_focus) { int sts; Widget text_w; int multiline; char *value; Arg args[5]; int input_size; if ( input_open) { XtUnmanageChild( cmd_input); set_prompt( ""); input_open = 0; return; } sts = ((WdaNav *)wdanav)->check_attr( &multiline, &input_node, input_name, &value, &input_size); if ( EVEN(sts)) { if ( sts == WDA__NOATTRSEL) message( 'E', "No attribute is selected"); else message( 'E', wnav_get_message( sts)); return; } if ( multiline) { text_w = cmd_scrolledinput; XtManageChild( text_w); XtManageChild( cmd_scrolled_ok); XtManageChild( cmd_scrolled_ca); // XtSetArg(args[0], XmNpaneMaximum, 300); // XtSetValues( wdanav_form, args, 1); XtSetArg(args[0], XmNmaxLength, input_size-1); XtSetValues( text_w, args, 1); if ( value) { XmTextSetString( text_w, value); // XmTextSetInsertionPosition( text_w, strlen(value)); } else XmTextSetString( text_w, (char*) ""); input_multiline = 1; } else { text_w = cmd_input; XtManageChild( text_w); XtSetArg(args[0],XmNmaxLength, input_size-1); XtSetValues( text_w, args, 1); if ( value) { XmTextSetString( text_w, value); XmTextSetInsertionPosition( text_w, strlen(value)); } else XmTextSetString( text_w, (char*) ""); input_multiline = 0; } if ( value) free( value); message( ' ', ""); if ( set_focus) flow_SetInputFocus( text_w); set_prompt( "value >"); input_open = 1; }
void WAttGtk::change_value( int set_focus) { int sts; GtkWidget *text_w; int multiline; char *value; int input_size; if ( input_open) { g_object_set( cmd_input, "visible", FALSE, NULL); g_object_set( cmd_scrolledinput, "visible", FALSE, NULL); set_prompt( ""); input_open = 0; return; } sts = wattnav->check_attr( &multiline, &input_node, input_name, &value, &input_size); if ( EVEN(sts)) { if ( sts == WATT__NOATTRSEL) message( 'E', "No attribute is selected"); else message( 'E', wnav_get_message( sts)); return; } if ( multiline) { text_w = cmd_scrolledinput; g_object_set( text_w, "visible", TRUE, NULL); int w, h; gdk_drawable_get_size( pane->window, &w, &h); gtk_paned_set_position( GTK_PANED(pane), h - 170); gtk_widget_grab_focus( cmd_scrolledtextview); input_max_length = input_size; input_multiline = 1; } else { text_w = cmd_input; g_object_set( text_w, "visible", TRUE, "max-length", input_size, NULL); gtk_widget_grab_focus( cmd_input); input_multiline = 0; } message( ' ', ""); if ( value) { if ( multiline) { GtkTextIter start_iter, end_iter; gtk_text_buffer_get_start_iter( cmd_scrolled_buffer, &start_iter); gtk_text_buffer_get_end_iter( cmd_scrolled_buffer, &end_iter); gtk_text_buffer_delete( cmd_scrolled_buffer, &start_iter, &end_iter); gtk_text_buffer_get_start_iter( cmd_scrolled_buffer, &start_iter); char *textutf8 = g_convert( value, -1, "UTF-8", "ISO8859-1", NULL, NULL, NULL); gtk_text_buffer_insert( cmd_scrolled_buffer, &start_iter, textutf8, -1); g_free( textutf8); // Select the text // gtk_text_buffer_get_start_iter( cmd_scrolled_buffer, &start_iter); // gtk_text_buffer_get_end_iter( cmd_scrolled_buffer, &end_iter); // gtk_text_buffer_select_range( cmd_scrolled_buffer, &start_iter, &end_iter); } else { char *textutf8 = g_convert( value, -1, "UTF-8", "ISO8859-1", NULL, NULL, NULL); gint pos = 0; gtk_editable_delete_text( GTK_EDITABLE(cmd_input), 0, -1); gtk_editable_insert_text( GTK_EDITABLE(text_w), textutf8, strlen(textutf8), &pos); g_free( textutf8); // Select the text gtk_editable_set_position( GTK_EDITABLE(cmd_input), -1); gtk_editable_select_region( GTK_EDITABLE(cmd_input), 0, -1); } } else { gtk_editable_delete_text( GTK_EDITABLE(cmd_input), 0, -1); } set_prompt( "value >"); input_open = 1; }