Exemple #1
0
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));
    }
  }

}
Exemple #3
0
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();
}
Exemple #4
0
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");
}
Exemple #5
0
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));
}
Exemple #6
0
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));
}
Exemple #8
0
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");
}
Exemple #9
0
//
//  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();
}
Exemple #10
0
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;
}
Exemple #11
0
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;
}