コード例 #1
0
ファイル: edit.c プロジェクト: Antonius-git/uTox
_Bool edit_mdown(EDIT *edit)
{
    if(edit->mouseover_char > edit->length) {
        edit->mouseover_char = edit->length;
    }

    if(edit->multiline) {
        if(scroll_mdown(edit->scroll)) {
            return 1;
        }
    }

    if(edit->mouseover) {
        edit_sel.start = edit_sel.p1 = edit_sel.p2 = edit->mouseover_char;
        edit_sel.length = 0;
        edit_select = 1;

        setactive(edit);

        showkeyboard(1);
        return 1;
    } else if(edit == active_edit) {
        edit_resetfocus();
    }

    return 0;
}
コード例 #2
0
ファイル: ui_buttons.c プロジェクト: Chuongv/uTox
static void button_change_id_type_onpress(void) {
    edit_resetfocus();
    if (self.id_buffer_length == TOX_FRIEND_ADDRESS_SIZE * 2) {
        self.id_buffer_length = bytes_to_emoji_string(self.id_buffer, sizeof(self.id_buffer), self.id_binary, TOX_FRIEND_ADDRESS_SIZE);
        edit_toxid.length = self.id_buffer_length;
    } else {
        id_to_string(self.id_buffer, self.id_binary);
        self.id_buffer_length = edit_toxid.length = TOX_FRIEND_ADDRESS_SIZE * 2;
    }
}
コード例 #3
0
ファイル: list.c プロジェクト: PKRoma/uTox
// TODO move this out of here!
static void show_page(ITEM *i){
    // TODO!!
    // panel_item[selected_item->item - 1].disabled = 1;
    // panel_item[i->item - 1].disabled = 0;

    edit_resetfocus();

    /* First things first, we need to deselect and store the old data. */
    switch (selected_item->item){
    case ITEM_FRIEND: {
        FRIEND *f = selected_item->data;

        free(f->typed);
        f->typed_length = edit_msg.length;
        f->typed = malloc(edit_msg.length);
        memcpy(f->typed, edit_msg.data, edit_msg.length);

        f->msg.scroll = messages_friend.panel.content_scroll->d;

        f->edit_history = edit_msg.history;
        f->edit_history_cur = edit_msg.history_cur;
        f->edit_history_length = edit_msg.history_length;


        panel_friend_chat.disabled = 1;
    }
    case ITEM_FRIEND_ADD: {
        panel_chat.disabled           = 1;
        panel_friend_request.disabled = 1;
        break;
    }
    case ITEM_GROUP: {
        GROUPCHAT *g = selected_item->data;

        free(g->typed);
        g->typed_length = edit_msg_group.length;
        g->typed = malloc(edit_msg_group.length);
        memcpy(g->typed, edit_msg_group.data, edit_msg_group.length);

        g->msg.scroll = messages_group.panel.content_scroll->d;

        g->edit_history = edit_msg_group.history;
        g->edit_history_cur = edit_msg_group.history_cur;
        g->edit_history_length = edit_msg_group.history_length;

        panel_chat.disabled       = 1;
        panel_group_chat.disabled = 1;
        break;
    }
    case ITEM_SETTINGS: {
        button_settings.disabled       = 0;
        panel_settings_master.disabled = 1;
        panel_overhead.disabled        = 1;
        break;
    }
    case ITEM_ADD: {
        button_add.disabled       = 0;
        panel_add_friend.disabled = 1;
        break;
    }

    case ITEM_TRANSFER: {
        button_transfer.disabled      = 0;
        panel_change_profile.disabled = 1;
        break;
    } /* End of last case */
    } /* End of switch    */


    /* Now we activate/select the new page, and load stored data */
    switch (i->item) {
    case ITEM_FRIEND_ADD: {
        panel_chat.disabled           = 0;
        panel_friend_request.disabled = 0;
        break;
    }
    case ITEM_FRIEND: {
        FRIEND *f = i->data;

        #ifdef UNITY
        if (unity_running) {
            mm_rm_entry(f->cid);
        }
        #endif

        memcpy(edit_msg.data, f->typed, f->typed_length);
        edit_msg.length = f->typed_length;

        messages_friend.data = &f->msg;
        messages_updateheight(&messages_friend);

        messages_friend.iover = MSG_IDX_MAX;
        messages_friend.panel.content_scroll->content_height = f->msg.height;
        messages_friend.panel.content_scroll->d = f->msg.scroll;

        f->msg.id = f - friend;

        f->notify = 0;

        edit_msg.history = f->edit_history;
        edit_msg.history_cur = f->edit_history_cur;
        edit_msg.history_length = f->edit_history_length;
        edit_setfocus(&edit_msg);

        panel_chat.disabled        = 0;
        panel_friend_chat.disabled = 0;
        break;
    }
    case ITEM_GROUP: {
        GROUPCHAT *g = i->data;

        memcpy(edit_msg_group.data, g->typed, g->typed_length);
        edit_msg_group.length = g->typed_length;

        messages_group.data = &g->msg;
        messages_updateheight(&messages_group);

        messages_group.iover = MSG_IDX_MAX;
        messages_group.panel.content_scroll->content_height = g->msg.height;
        messages_group.panel.content_scroll->d = g->msg.scroll;
        edit_setfocus(&edit_msg_group);

        g->msg.id = g - group;

        edit_msg_group.history = g->edit_history;
        edit_msg_group.history_cur = g->edit_history_cur;
        edit_msg_group.history_length = g->edit_history_length;

        panel_chat.disabled       = 0;
        panel_group_chat.disabled = 0;
        break;
    }
    case ITEM_SETTINGS: {
        button_settings.disabled        = 1;

        panel_overhead.disabled         = 0;
        panel_settings_master.disabled  = 0;
        break;
    }
    case ITEM_ADD: {
        button_add.disabled       = 1;

        panel_overhead.disabled   = 0;
        panel_add_friend.disabled = 0;
        edit_setfocus(&edit_add_id);
        break;
    }
    case ITEM_TRANSFER: {
        button_transfer.disabled      = 1;

        panel_overhead.disabled       = 0;
        panel_change_profile.disabled = 0;
        break;
    } // Last case
    } // Switch

    selected_item = i;

    addfriend_status = 0;

    // I think we shouldn't call this just here, redrawing should only be done when panel_draw is called, and now, we
    // don't even need to call the root tree, we can call subtrees/roots and should be able to increase performance.
    // redraw();
}
コード例 #4
0
ファイル: ui_buttons.c プロジェクト: Chuongv/uTox
static void button_send_friend_request_onpress(void) {
    friend_add(edit_add_id.data, edit_add_id.length, edit_add_msg.data, edit_add_msg.length);
    edit_resetfocus();
}