void NumericalEntry::set_value (double value) { if (abs(value - _adjustment->get_value()) > EPS) { _adjustment->set_value(value); } else { //gint return_val = FALSE; //g_signal_emit (spin_button, spinbutton_signals[OUTPUT], 0, &return_val); //if (return_val == FALSE) default_output(); } }
static int read_container(char* contname) { struct stat sb; int fd, num_exts, ret = 0, flags = 0; if (ram_drive) flags = O_RDONLY; else flags = O_RDONLY | O_DIRECT; fd = open(contname, flags); if (fd < 0) { printf("open error: %d\n", errno); exit(1); } if (print_temp || print_content_len || print_for_cliweb) { attr_hash = g_hash_table_new(g_str_hash, g_str_equal); if (read_attributes(contname)) { ret = 0; goto exit; } } if (stat(contname, &sb) < 0) { fprintf(stderr, "stat error: %d\n", errno); exit(1); } /* If the container file is empty, return now */ if (!sb.st_size) return ret; num_exts = (sb.st_size - NKN_CONTAINER_HEADER_SZ) / DEV_BSIZE; if (print_one_entry_per) { combine_uri_segments(fd, contname, num_exts); } else if (print_compact_output == 0) default_output(fd, contname, num_exts); else compact_output(fd, contname, num_exts); exit: if (attr_hash) { g_hash_table_foreach(attr_hash, free_an, NULL); g_hash_table_destroy(attr_hash); attr_hash = NULL; } close(fd); return ret; } /* read_container */
void NumericalEntry::value_changed() { // bool return_val = false; //g_signal_emit (spin_button, spinbutton_signals[OUTPUT], 0, &return_val); // if (!return_val) default_output(); //g_signal_emit (spin_button, spinbutton_signals[VALUE_CHANGED], 0); queue_draw(); g_object_notify(G_OBJECT(this), "value"); }
void NumericalEntry::update() { // get value as double string str = get_text(); stringstream s(get_text()); double value; bool is_valid = s >> value; if (is_valid) { // restrict value between lower and upper limits value = max(_adjustment->get_lower(), min(_adjustment->get_upper(), value)); set_value(value); } else { // revert to the previous text default_output(); } queue_draw(); }
static int announce(const char *app, const char *version, const char *release, orcm_pnp_announce_fn_t cbfunc) { int ret; opal_buffer_t buf; orcm_pnp_channel_t chan; /* bozo check */ if (NULL == app || NULL == version || NULL == release) { ORTE_ERROR_LOG(ORCM_ERR_BAD_PARAM); return ORCM_ERR_BAD_PARAM; } if (!orcm_pnp_base.comm_enabled) { return ORCM_ERR_COMM_DISABLED; } /* protect against threading */ ORTE_ACQUIRE_THREAD(&local_thread); if (NULL != orcm_pnp_base.my_string_id) { /* must have been called before */ OPAL_OUTPUT_VERBOSE((2, orcm_pnp_base.output, "%s pnp:default:announce called before", ORTE_NAME_PRINT(ORTE_PROC_MY_NAME))); ORTE_RELEASE_THREAD(&local_thread); return ORCM_SUCCESS; } OPAL_OUTPUT_VERBOSE((2, orcm_pnp_base.output, "%s pnp:default:announce app %s version %s release %s", ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), app, version, release)); /* retain a local record of my info - this enables communication * by setting my_string_id != NULL */ ORCM_CREATE_STRING_ID(&orcm_pnp_base.my_string_id, app, version, release); /* retain the callback function */ orcm_pnp_base.my_announce_cbfunc = cbfunc; /* get a triplet object for myself - creates * it if one doesn't already exist */ orcm_pnp_base.my_triplet = orcm_get_triplet(app, version, release, true); /* get my group object */ orcm_pnp_base.my_group = orcm_get_triplet_group(orcm_pnp_base.my_triplet, ORTE_PROC_MY_NAME->jobid, true); orcm_pnp_base.my_group->uid = orcm_pnp_base.my_uid; orcm_pnp_base.my_group->input = orcm_pnp_base.my_input_channel->channel; orcm_pnp_base.my_group->output = orcm_pnp_base.my_output_channel->channel; /* check for pending recvs for these channels - this will copy * recvs that were pre-posted on the triplet to the channel * array */ orcm_pnp_base_check_pending_recvs(orcm_pnp_base.my_triplet, orcm_pnp_base.my_group); /* release the triplet as we no longer require it */ ORTE_RELEASE_THREAD(&orcm_pnp_base.my_triplet->ctl); /* no need to hold the lock any further */ ORTE_RELEASE_THREAD(&local_thread); /* assemble the announcement message */ OBJ_CONSTRUCT(&buf, opal_buffer_t); /* pack the common elements */ if (ORCM_SUCCESS != (ret = orcm_pnp_base_pack_announcement(&buf, ORTE_NAME_INVALID))) { ORTE_ERROR_LOG(ret); OBJ_DESTRUCT(&buf); return ret; } /* select the channel */ if (ORCM_PROC_IS_APP) { chan = ORTE_RMCAST_APP_PUBLIC_CHANNEL; } else { chan = ORTE_RMCAST_SYS_CHANNEL; } /* send it */ if (ORCM_SUCCESS != (ret = default_output(chan, NULL, ORCM_PNP_TAG_ANNOUNCE, NULL, 0, &buf))) { ORTE_ERROR_LOG(ret); } /* cleanup */ OBJ_DESTRUCT(&buf); return ret; }