Image forming apparatus that outputs an operation screen of an extension application with part of an operation screen of a native program control method therefor, and storage medium

A present image forming apparatus includes a first control unit that controls a native program, a second control unit that controls an extension application different from the native program, a first memory area in which an operation screen of the native program controlled by the first control unit is rendered, and a second memory area in which an operation screen of the extension application controlled by the second control unit is rendered. At least a part of the operation screen of the native program is output to a display when an event related to outputting of the operation screen of the native program has occurred while the display is displaying a screen rendered in the first memory area.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to an image forming apparatus, a control method therefor, and a storage medium.

Description of the Related Art

Systems that can expand the functions of an image forming apparatus by installing extension applications in the image forming apparatus are widespread. These systems have an execution environment that causes the extension applications to operate by adding in expanded programs separately from control applications of the image forming apparatus. Japanese Patent Laid-Open No. 2014-75088 suggests a technique that realizes exporting and importing of setting information of expanded programs using a portable storage medium.

However, the foregoing conventional technique has the following problem. There is a known method of installing a window manager to enable coexistence of a UI for operating standard functions of an image forming apparatus, such as copying, and a UI for operating expanded functions. Realization of such a window manager requires consumption of a large amount of hardware resources, such as a high-speed CPU, GPU, and memory. However, in an image forming apparatus with limited resources, it is difficult to enable coexistence of an UI for operating standard functions and a UI for operating expanded functions, and convenience of users has been impaired.

SUMMARY OF THE INVENTION

One aspect of the present invention provides an image forming apparatus, comprising: a display; a first control unit configured to control a native program of the image forming apparatus; a second control unit configured to control an extension application that is different from the native program; a first memory area in which an operation screen of the native program controlled by the first control unit is rendered; a second memory area in which an operation screen of the extension application controlled by the second control unit is rendered; and an output processing unit configured to output at least a part of the operation screen of the native program to the display when an event related to outputting of the operation screen of the native program has occurred while the display is displaying a screen rendered in the first memory area.

Another aspect of the present invention provides a control method for an image forming apparatus that includes a display, a first control unit configured to control a native program of the image forming apparatus, and a second control unit configured to control an extension application that is different from the native program, the control method comprising: rendering, in a first memory area, an operation screen of the native program controlled by the first control unit; rendering, in a second memory area, an operation screen of the extension application controlled by the second control unit; and outputting at least a part of the operation screen of the native program to the display when an event related to outputting of the operation screen of the native program has occurred while the display is displaying a screen rendered in the first memory area.

Still another aspect of the present invention provides a non-transitory computer-readable storage medium storing a computer program for causing a computer to execute processes of a control method for an image forming apparatus that includes a display, a first control unit configured to control a native program of the image forming apparatus, and a second control unit configured to control an extension application that is different from the native program, the control method comprising: rendering, in a first memory area, an operation screen of the native program controlled by the first control unit; rendering, in a second memory area, an operation screen of the extension application controlled by the second control unit; and outputting at least a part of the operation screen of the native program to the display when an event related to outputting of the operation screen of the native program has occurred while the display is displaying a screen rendered in the first memory area.

DESCRIPTION OF THE EMBODIMENTS

First Embodiment

<Configuration of Image Forming Apparatus>

The following describes a first embodiment of the present invention. First, with reference toFIG. 1, exemplary configurations of main components of an image forming apparatus will be described.

An image forming apparatus10includes a controller unit100, an operation unit112, a scanner170, and a printer195. A USB storage114is attachable to and removable from the image forming apparatus10. The controller unit100includes a CPU101, a RAM102, a ROM103, a storage104, an image path I/F105, an operation unit I/F106, a network I/F110, and a USB host I/F113. These components are connected via a system bus107. The controller unit100also includes a device I/F120, a scanner image processing unit180, and a printer image processing unit190. These components are connected via an image bus108. Note that the image path I/F105is connected to both the system bus107and the image bus108.

The controller unit100performs control to realize a copy function that causes a printer195to output a printout of image data read by the scanner170. The CPU101starts up an operating system (OS) using a boot application stored in the ROM103. The CPU101executes various types of processes by executing applications stored in the storage104on the OS. The RAM102is used as a working area for the CPU101. The RAM102provides the working area, as well as an image memory area for temporarily storing image data. The storage104stores applications and image data.

The operation unit I/F106is an interface with the operation unit112that includes a touchscreen, and outputs image data to be displayed on the operation unit112to the operation unit112. The operation unit I/F106also transmits, to the CPU101, information that has been input by a user via the operation unit112. The network I/F110is an interface for connecting the image forming apparatus10to a LAN.

The USB host I/F113is an interface unit that communicates with the USB storage114. The USB host I/F113is an output unit for causing the USB storage114to store data stored in the storage104. The USB host I/F113also conveys data stored in the USB storage114to the CPU101by inputting the data thereto. The USB storage114is an external storage apparatus that stores data, and is attachable to and removable from the USB host I/F113. A plurality of USB devices, including the USB storage114, are connectable to the USB host I/F113.

The image path I/F105is a bus bridge intended to connect the system bus107and the image bus108, which transfers image data at high speed, and to convert a data format. The image bus108is constituted by, for example, a PCI bus or an IEEE 1394 bus. The scanner170and the printer195are connected to the device I/F120, and the device I/F120applies synchronous/asynchronous conversion to image data. The scanner image processing unit180applies correction, processing, and editing to input image data. The printer image processing unit190applies correction, resolution conversion, and the like to image data to be output as a printout in accordance with the printer195.

With reference toFIG. 2, a description is now given of exemplary execution environments for extension applications of the image forming apparatus10. Herein, the extension applications refer to applications for providing expanded functions other than standard functions. Modules shown inFIG. 2are realized by the CPU101loading applications stored in the storage104to the RAM102and executing the loaded applications.

A native program210for controlling the printer, a FAX machine, the scanner, and other image processing units, as well as virtual machines (VMs)230that serve as execution environments for the extension applications, operate on an operating system (OS)201. The VMs230are modules for comprehending and executing applications that control the extension applications. The extension applications always operate on the VMs230. The VMs230according to the present embodiment are software modules that operate on the CPU101; alternatively, they may be hardware modules. The VMs are interpreters, and may be Java®. In a case where the VMs are bytecode interpreters, the VMs may be, for example, systems that interpret Lua, which is a scripting language.

The native program210includes native threads214for controlling the printer, the FAX machine, the scanner, and other image processing units, and VM threads215for causing the virtual machines230to operate. The number of the VM threads is the same as the number of the VMs230. Herein, three VM threads211,212, and213have been generated. The native program210may be constituted as a part of firmware (real-time OS) that directly controls native functions of the image forming apparatus, or as a library called up by the firmware. This library may be constituted as a group of control programs that directly control native functions of the image forming apparatus, such as the C language.

A VM system service220is a utility library that is shared by the extension applications. By calling up functions of the VM system service220from extension applications240, the trouble of developing extension applications can be saved, or the modules of the image forming apparatus10can be accessed. The VM system service220includes a standard VM system service221that achieves minimal VM operations, and an expanded VM system service222that accesses the modules of the image forming apparatus10and provides OS functions.

The VMs230execute the extension applications240. The VMs230are generated in one-to-one correspondence with threads of the extension applications. In the example ofFIG. 2, the following VMs are generated: VM A-1231and VM A-2232for causing two threads to operate in an extension application A241, and VM B-1233for causing one thread to operate in an extension application B242.

On a main menu screen displayed on the operation unit112of the image forming apparatus10, icons that are in one-to-one correspondence with the extension applications are displayed. When the operation unit I/F106detects selection of any of the icons by the user via the operation unit112, the operation unit I/F106transmits a notification indicating the detection to the CPU101. Upon receiving the notification, the CPU101activates the extension application selected by the user.

With reference toFIG. 3, a description is now given of exemplary configurations of software modules that operate on the CPU101of the image forming apparatus10according to the present embodiment.

The image forming apparatus10includes a UI control unit301, a standard function control unit302, a standard function screen buffer control unit303, and a screen output processing unit304as software modules. The image forming apparatus10also includes an application management unit305, an application execution control unit306, and an application screen buffer control unit307. The UI control unit301is a module that detects information of an operation performed by the user via the operation unit112, and notifies the standard function control unit302or the application management unit305of the detected operation information depending on the situation.

The standard function control unit302functions as a first control unit, and controls the standard functions (native program) of the image forming apparatus10, such as copy, scan, and FAX functions, based on the operation information notified by the UI control unit301. This is a module that renders information necessary for user operations via the standard function screen buffer control unit303, and displays the rendered information on the operation unit112via the screen output processing unit304. It also controls a home screen400shown inFIG. 4for calling up the functions of the image forming apparatus10, and upon selection of an icon for executing an application (extension application), notifies the application management unit305of an application activation request. Herein, the extension applications refer to applications that are different from the native program and that have been installed to provide functions other than the standard functions of the image forming apparatus10. These extension applications may have already been installed at the time of product shipment of the image forming apparatus, or may be installed after the product shipment.

The standard function screen buffer control unit303is a module that functions as a first buffer control unit and controls a screen buffer in which the standard function control unit302renders an image. An image rendered in this buffer is displayed on the operation unit112via the screen output processing unit304. The image output processing unit304is a module that switches between the standard function screen buffer control unit303and the application screen buffer control unit307depending on the situation in displaying a buffer on the operation unit112.

The application management unit305is a module that functions as a second control unit, executes a process for activating a designated application upon accepting the application activation request notified by the standard function control unit302, and notifies the application execution control unit306of the operation information notified by the UI control unit301. The application execution control unit306is a module that executes an application designated by the application management unit305. The application execution control unit306also renders an application operation screen via the application screen buffer control unit307, and displays the rendered application operation screen on the operation unit112via the screen output processing unit304. The application screen buffer control unit307is a module that functions as a second buffer control unit and controls a screen buffer in which the application execution control unit306renders an image.

With reference toFIG. 4, a description is now given of an example of the home screen400displayed on the operation unit112of the image forming apparatus10according to the present embodiment. The home screen400is rendered by the standard function control unit302via the standard function screen buffer control unit303, and then output to the operation unit112by the screen output processing unit304.

The home screen400is used by the user to call up the functions of the image forming apparatus10, and is displayed together with icons for activating the standard functions (e.g., copy, FAX, and send) and applications of the image forming apparatus10. When the user selects any of these icons, a function indicated by the selected icon operates. When a copy icon401, a FAX icon402, and a send icon403are selected, setting screens for the copy function, FAX function, and send function are displayed, respectively. When an application icon404is selected, an application associated with this icon is activated.

On a lower part of the home screen400, a status confirmation button405is displayed in a selectable manner, and a status display area406is provided. When the status confirmation button405is selected, a status confirmation screen700shown inFIG. 7for confirming the statuses of the image forming apparatus10is displayed. The status display area406displays a state of the image forming apparatus10. When the status confirmation button405is selected, the status confirmation screen700for confirming the statuses of the image forming apparatus10is displayed. Herein, a display area made up of the combination of the status confirmation button405and the status display area406is referred to as a footer area407, and is displayed in common on various screens of the image forming apparatus10according to the present embodiment. That is to say, the footer area is displayed in common on both of screens of standard functions and screens of other applications. Providing such a footer area enables the user to perform operations without consciously discriminating between the native program, which provides standard functions, and other extension applications, thereby improving UI convenience.

<Sequence Associated with Selection of Standard Function>

With reference toFIG. 5, a description is now given of a sequence of processes that are executed when the user has selected the copy icon (standard function)401on the home screen400shown inFIG. 4, and that are executed until a copy setting screen600shown inFIG. 6is displayed. The following processes are realized, for example, by the CPU101reading out programs stored in the ROM103and the storage104into the RAM102and executing the programs.

First, in step S5001, the UI control unit301detects a user operation. Subsequently, in step S5002, the UI control unit301executes an operation information notification process for deciding on which one of the standard function control unit302and the application management unit305is to be notified of operation information. It will be assumed here that the standard function control unit302is decided on as a notification destination. Furthermore, in step S5003, the UI control unit301notifies the standard function control unit302, which was decided on as the notification destination in the operation information notification process of step S5002, of the operation information.

Next, in step S5004, the standard function control unit302executes an operation identification process for identifying what kind of operation was performed based on a screen currently displayed and on the received operation information. Here, the selection of the copy icon401is identified. Subsequently, in step S5005, the standard function control unit302issues a rendering request to the standard function screen buffer control unit303so as to render the copy setting screen600shown inFIG. 6. Upon accepting the rendering request, the standard function screen buffer control unit303renders the screen.

Next, in step S5006, the standard function control unit302executes a screen output request transmission process for transmitting a screen output request so as to display the rendered screen. In step S5007, the standard function control unit302issues the output request to the screen output processing unit304. In step S5008, upon accepting the output request, the screen output processing unit304executes a screen output process and outputs the screen to the operation unit112.

With reference toFIG. 6, a description is now given of the copy setting screen600that is displayed on the operation unit112when the copy icon401shown inFIG. 4has been selected. The user can use the copy function of the image forming apparatus10by operating the copy setting screen600. Copy settings can be displayed and edited in a copy setting area601. As shown inFIG. 6, the footer area407is displayed on the copy setting screen600, similarly to the home screen400shown inFIG. 4.

With reference toFIG. 7, a description is now given of the status confirmation screen700of the image forming apparatus10, which is displayed on the operation unit112when the status confirmation button405has been selected. The status confirmation screen700displays buttons701to705for confirming various statuses of the image forming apparatus10, and the operation unit112displays screens for confirming various statuses upon selection of these buttons.

A device information button701is intended to display a screen for confirming a serial number and a firmware version of the image forming apparatus10. A copy/print job button702is intended to display the processing statuses and history of copy/print jobs that have been processed in the image forming apparatus10. A transmission job button703is intended to display the processing statuses and history of transmission jobs that have been processed in the image forming apparatus10. A reception job button704is intended to display the processing statuses and history of reception jobs that have been processed in the image forming apparatus10. A network information button705is intended to display a network IP address and network settings of the image forming apparatus10. A close button706is intended to close the status confirmation screen700and return to the previous screen.

<Sequence Associated with Selection of Extension Application>

With reference toFIG. 8, a description is now given of a sequence of processes for activating an application (extension application) upon selection of the application icon404shown inFIG. 4, and for displaying an extension application screen1100of the application shown inFIG. 11. The following processes are realized, for example, by the CPU101reading out programs stored in the ROM103and the storage104into the RAM102and executing the programs.

First, in step S8002, the UI control unit301detects a user operation. Subsequently, in step S8002, the UI control unit301executes the operation information notification process for deciding on which one of the standard function control unit302and the application management unit305is to be notified of operation information. It will be assumed here that the standard function control unit302is decided on as a notification destination. Furthermore, in step S8003, the UI control unit301notifies the standard function control unit302, which was decided on as the notification destination in the operation information notification process of step S8002, of the operation information.

Next, in step S8004, the standard function control unit302executes the operation identification process for identifying what kind of operation was performed based on a screen currently displayed and on the received operation information. Here, the selection of the application icon404is identified. Subsequently, in step S8005, the standard function control unit302transmits, to the application management unit305, an application icon pressing notification indicating that the application icon has been selected.

Next, in step S8006, the application management unit305issues an application activation request to the application execution control unit306so as to activate an application corresponding to the pressed icon. Upon accepting the application activation request, the application execution control unit306notifies the screen output processing unit304of a switching request so as to display an application screen in step S8007, and notifies the UI control unit301of an operation information notification request in step S8008. Upon accepting the operation information notification request, the UI control unit301executes a notification destination switching process and switches the notification destination to the application management unit in step S8013.

Meanwhile, in step S8009, upon accepting the switching request, the screen output processing unit304executes a screen output source switching process for switching a screen output source to the application screen buffer control unit307. Thereafter, in step S8010, the application execution control unit306issues a rendering request to the application screen buffer control unit307so as to render an operation screen of the application. Furthermore, in step S8011, the application execution control unit306notifies the screen output processing unit304of an output request so as to display the rendered operation screen. Upon accepting the output request, the screen output processing unit304executes the screen output process in step S8012.

Next, in step S8014, the UI control unit301detects a user operation. Subsequently, in step S8015, the UI control unit301executes the operation information notification process for deciding on which one of the standard function control unit302and the application management unit305is to be notified of operation information. As the notification destination was changed to the application management unit305in the notification destination switching process of step S8013, the UI control unit301notifies the application management unit305of the operation information in step S8016. Thereafter, in step S8017, the application management unit305notifies the application execution control unit306, which is executing the application, of the received operation information. The foregoing processes activate the application, display the operation screen of the application, and notify the application execution control unit306of the operation information.

With reference toFIG. 9, a description is now given of a specific process procedure of the operation information notification process (steps S5001, S8002, S8015, S1402, and S1413) shown inFIGS. 5, 8, and 14. The following processes are realized, for example, by the CPU101reading out programs stored in the ROM103and the storage104into the RAM102and executing the programs.

First, in step S900, the UI control unit301determines whether an operation information notification request from an application is enabled. It proceeds to step S901if the operation information notification request is enabled, and proceeds to step S902if the operation information notification request is disabled. In step S901, the UI control unit301determines whether a current notification destination of operation information is the application management unit305or the standard function control unit302. It proceeds to step S903if the notification destination of the operation information from the UI control unit301is the application, and proceeds to step S902if the notification destination is a standard function.

In step S903, the UI control unit301determines whether an operated area is the footer area407. It proceeds to step S902if the operated area is the footer area407, and proceeds to step S904if the operated area is not the footer area407. In step S904, the UI control unit301notifies the application management unit305of the operation information, and ends the present process. On the other hand, in step S902, the UI control unit301notifies the standard function control unit302of the operation information, and ends the present process.

With reference toFIG. 10, a description is now given of a specific process procedure of the screen output process (steps S5008, S8012, S1204, S1409, and S1420) shown inFIGS. 5, 8, 12, and 14. The following processes are realized, for example, by the CPU101reading out programs stored in the ROM103and the storage104into the RAM102and executing the programs.

First, in step S1001, the screen output processing unit304determines whether a current output source is an application screen buffer or a standard function screen buffer. It proceeds to step S1003if the output source is the application screen buffer, and proceeds to step S1002if the output source is the standard function screen buffer. In step S1002, the screen output processing unit304outputs the content of the standard function screen buffer, and ends the present process.

On the other hand, in step S1003, the screen output processing unit304copies the footer area407in the standard function screen buffer to the application screen buffer, and then proceeds to step S1004. In step S1004, the screen output processing unit304outputs the content of the application screen buffer, and ends the present process. The foregoing process enables the footer area407of a screen displayed by an application to display the same content as that of a screen displayed by a standard function.

With reference toFIG. 11, a description is now given of an example of a screen displayed by an application (extension application). The extension application screen1100is rendered by the application operating on the application execution control unit306via the application screen buffer control unit307, and then output to the operation unit112by the screen output processing unit304. The following describes an example in which this screen is an application execution screen for printing a pre-registered image form.

An area1101displays print settings of the pre-registered form. A button1102confirms execution of printing of this form. A button1103confirms cancellation of printing of this form. The screen output processing unit304displays the footer area407by copying a footer section rendered by the standard function control unit302. While this screen is being displayed, basically, the application management unit305is notified of operation information of a user operation in the operation information notification process (step S5002). Thereafter, the application management unit305notifies the application (extension application) executed in the application execution control unit306of the operation information. Note that an operation performed on the footer area407is notified to the standard function control unit302as will be described later in detail.

<Sequence of Screen Output Control>

With reference toFIG. 12, a description is now given of a sequence of processes for screen output control that is performed with respect to the footer area407while the extension application screen1100shown inFIG. 11is being displayed. The following processes are realized, for example, by the CPU101reading out programs stored in the ROM103and the storage104into the RAM102and executing the programs.

In step S1201, the standard function control unit302monitors a state of the image forming apparatus10, and if some kind of error occurs, issues a request to render an error message in the status display area406. Subsequently, in step S1202, the standard function control unit302executes the screen output request transmission process so as to display the rendered content. In step S1203, the standard function control unit302issues an output request to the screen output processing unit304as a part of the screen output request transmission process. Upon accepting the output request, the screen output processing unit304executes the screen output process and outputs a screen to the operation unit112in step S1204. Specifically, an application screen is output to the operation unit112after the footer area407in the standard function screen buffer is copied to the application screen buffer control unit307. As a result of the foregoing processes, an extension application screen1300shown inFIG. 13, which includes the updated footer area407, is displayed.

FIG. 13shows an example of the extension application screen1300that is displayed by performing the screen output control shown inFIG. 12. An area1301is rendered by the application execution control unit306. On the other hand, the footer area407is rendered by the standard function control unit302. The screen output process composites these areas together and displays them on the operation unit112. That is to say, an image rendered by the native program and an image rendered by an extension application are composited together, and the composite image is output as the extension application screen1300. As stated earlier, in the present embodiment, operations that are performed on these rendered areas are respectively notified to the applications that rendered these areas.

<Sequence Associated with Selection of Status Confirmation Button>

With reference toFIG. 14, a description is now given of a sequence of processes that are executed when the status confirmation button405on the extension application screen1100shown inFIG. 11has been selected. The following processes are realized, for example, by the CPU101reading out programs stored in the ROM103and the storage104into the RAM102and executing the programs.

First, in step S1401, the UI control unit301detects a screen operation performed by the user. Subsequently, in step S1402, the UI control unit301executes the operation information notification process and decides on a notification destination of operation information. In the present case, as the status confirmation button405in the footer area407was selected (operated), the standard function control unit302is decided on as the notification destination in the determination process of step S903. Thereafter, in step S1403, the UI control unit301notifies the standard function control unit302of the operation information.

In step S1404, the standard function control unit302executes the operation identification process for identifying what kind of operation was performed based on a screen currently displayed and on the received operation information. Here, the selection of the status confirmation button405is identified. Subsequently, in step S1405, the standard function control unit302renders the status confirmation screen700shown inFIG. 7as the status confirmation button405was selected. Thereafter, in step S1406, the standard function control unit302executes the screen output request transmission process so as to display the screen. Then, in step S1407, the standard function control unit302notifies the screen output processing unit304of a priority output request. The details of the screen output request transmission process will be described later usingFIG. 15.

In step S1408, upon accepting the priority output request, the screen output processing unit304executes a screen switching process for temporarily switching a screen output source to the standard function screen buffer so as to output the content of the standard function screen buffer in priority to the content of the application screen buffer. Subsequently, in step S1409, the screen output processing unit304executes the screen output process so as to display the screen that was decided on by the screen switching process. As a result of this process, display of the screen shown inFIG. 11is switched to display of the screen shown inFIG. 7.

Furthermore, in step S1410, the standard function control unit302transmits an operation information notification request to the UI control unit301so that the next operation information is transmitted to the standard function control unit302. In step S1411, upon accepting the operation information notification request, the UI control unit301executes the notification destination switching process and switches the notification destination of the operation information to the standard function control unit302.

Next, in step S1412, if the user selects the close button706, the UI control unit301detects a screen operation. Subsequently, in step S1413, the UI control unit301executes the operation information notification process and decides on the notification destination of the operation information. Here, as the notification destination was switched to the standard function control unit302in step S1411, the UI control unit301notifies the standard function control unit302of the operation information in step S1414.

In step S1415, the standard function control unit302executes the operation identification process for identifying what kind of operation was performed based on a screen currently displayed and on the received operation information. Here, the selection of the close button706is identified. Subsequently, in step S1416, the standard function control unit302renders the home screen400shown inFIG. 4as the close button706was selected. In step S1417, the standard function control unit302executes the screen output request transmission process so as to display the screen. Then, the standard function control unit302transmits, to the screen output processing unit304, priority output cancellation for cancelling the priority output in step S1418, and transmits an operation information notification cancellation request to the UI control unit301in step S1421. The details of the screen output request transmission process will be described later usingFIG. 15.

Upon accepting the priority output cancellation, the screen output processing unit304executes the screen switching process and switches the screen output source back to the application screen buffer in step S1419. Subsequently, in step S1420, the screen output processing unit304executes the screen output process so as to display the extension application screen1100shown inFIG. 11on the operation unit112.

Furthermore, upon accepting the operation information notification cancellation request, the standard function control unit302executes the notification destination switching process and switches the notification destination of the operation information to the application management unit305, that is to say, an extension application, in step S1422.

As described above, on the occurrence of a screen transition by the standard function control unit302upon detection of an operation on the footer area407of the extension application screen, an appropriate screen (a native program screen) can be displayed as a result of display switching. Furthermore, the user can return to the previous extension application screen by performing an operation to return to the previous extension application screen on the native program screen.

<Screen Output Request Transmission Process>

With reference toFIG. 15, a description is now given of a specific process procedure of the screen output request transmission process (steps S5006, S1202, S1406, and S1417) shown inFIGS. 5, 12, and 14. The following processes are realized, for example, by the CPU101reading out programs stored in the ROM103and the storage104into the RAM102and executing the programs.

First, in step S1501, the standard function control unit302determines whether a screen to be output is attributed to a screen transition or partial updating of a screen. It proceeds to step S1502if the screen to be output is attributed to the screen transition, and proceeds to step S1507if the screen to be output is attributed to partial updating. In step S1502, the standard function control unit302determines whether the type of the screen transition is a transition to the home screen400. It proceeds to step S1505if the type is the transition to the home screen400, and proceeds to step S1503if the type is not the transition to the home screen400.

In step S1503, the standard function control unit302transmits a priority output display request so that the screen output processing unit304displays the standard function screen buffer. Subsequently, in step S1504, the standard function control unit302transmits an input switching request to the UI control unit301so as to make the standard function control unit302a notification destination of operation information from the UI control unit301, and ends the present process.

On the other hand, in step S1505, the standard function control unit302transmits a priority output cancellation request to the screen output processing unit304so that the application screen buffer is displayed during execution of an application. Subsequently, in step S1506, the standard function control unit302transmits an input switching request to the UI control unit301so that the application is notified of operation information during execution of the application, and ends the present process.

In step S1507, the standard function control unit302transmits a screen output request to the screen output processing unit304so as to update a displayed screen, and ends the present process. Execution of the process of the present flowchart enables switching between displayed screens and switching between notification destinations of operation information depending on the situation.

With reference toFIG. 16, a description is now given of a specific process procedure of the notification destination switching process (steps S8013, S1411, and S1422) shown inFIGS. 8 and 14. The following processes are realized, for example, by the CPU101reading out programs stored in the ROM103and the storage104into the RAM102and executing the programs.

First, in step S1601, the UI control unit301determines whether a request source of the switching process is the standard function control unit302(native program) or the application execution control unit306(extension application). It proceeds to step S1608if the request source of the switching process is the standard function control unit302, and proceeds to step S1602if the request source is the application execution control unit306.

In step S1602, the UI control unit301determines whether the request for the switching process is a notification request or a cancellation request. It proceeds to step S1603if the request is the notification request, and proceeds to step S1606if the request is the cancellation request. In step S1603, the UI control unit301enables a flag for notifying the application of operation information. This flag is disabled in a default state. Subsequently, in step S1604, the UI control unit301confirms a flag for notifying the standard function control unit302of the operation information. It ends the present process if the flag is enabled, and proceeds to step S1605if the flag is disabled. In step S1605, the UI control unit301sets a notification destination of the operation information to the application management unit305, and then ends the present process. Note that the notification destination of the operation information is set to the standard function control unit302in a default state.

On the other hand, in step S1606, the UI control unit301disables the flag for notifying the application of the operation information. Subsequently, in step S1607, the UI control unit301sets the notification destination of the operation information to the standard function control unit302, and then ends the present process.

In step S1608, the UI control unit301determines whether the switching request is the notification request or the cancellation request, similarly to step S1602. It proceeds to step S1609if the switching request is the notification request, and proceeds to step S1611if the switching request is the cancellation request. In step S1609, the UI control unit301enables the flag for notifying the standard function control unit302of the operation information. This flag is disabled in a default state. Subsequently, in step S1610, the UI control unit301sets the notification destination of the operation information to the standard function control unit302, and then ends the present process.

On the other hand, in step S1611, the UI control unit301disables the flag for notifying the standard function control unit302of the operation information. Subsequently, in step S1612, the UI control unit301confirms the setting state of the flag for notifying the application of the operation information. It proceeds to step S1613if the flag is enabled, and ends the present process if the flag is disabled. In step S1613, the UI control unit301sets the notification destination of the operation information to the application management unit305, and then ends the present process. By executing the process of the present flowchart, the notification destination of the operation information can be switched between the application management unit305and the standard function control unit302depending on the situation.

With reference toFIG. 17, a description is now given of a specific process procedure of the screen output source switching process (steps S8009and S1802) shown inFIGS. 8 and 18. The following processes are realized, for example, by the CPU101reading out programs stored in the ROM103and the storage104into the RAM102and executing the programs.

First, in step S1701, the screen output processing unit304determines whether a request source of screen output source switching is the standard function control unit302(native program) or the application execution control unit306(extension application). It proceeds to step S1708if the request source is the standard function control unit302, and proceeds to step S1702if the request source is the application execution control unit306.

In step S1702, the screen output processing unit304determines whether the type of the request for screen output source switching is an output request or a cancellation request. It proceeds to step S1703if the request is the output request, and proceeds to step S1706if the request is the cancellation request. In step S1703, the screen output processing unit304enables a flag for outputting from the application screen buffer. This flag is disabled in a default state. Subsequently, in step S1704, the screen output processing unit304confirms a flag for outputting from the standard function screen buffer. It ends the present process if the flag is enabled, and proceeds to step S1705if the flag is disabled. In step S1705, the screen output processing unit304sets the output source to the application screen buffer, and ends the present process. This output source is set to the standard function screen buffer in a default state.

On the other hand, in step S1706, the screen output processing unit304disables the flag for outputting from the application screen buffer. Subsequently, in step S1707, the screen output processing unit304sets the output source to the standard function screen buffer, and then ends the present process.

In step S1708, the screen output processing unit304determines whether the request for screen output source switching is the output request or the cancellation request, similarly to step S1702. It proceeds to step S1709if the request is the output request, and proceeds to step S1711if the request is the cancellation request. In step S1709, the screen output processing unit304enables the flag for outputting from the standard function screen buffer. This flag is disabled in a default state. Subsequently, in step S1710, the screen output processing unit304sets the output source to the standard function screen buffer, and then ends the present process.

On the other hand, in step S1711, the screen output processing unit304disables the flag for outputting from the standard function screen buffer. Subsequently, in step S1712, the screen output processing unit304confirms the setting state of the flag for outputting from the application screen buffer. It proceeds to step S1713if the flag is enabled, and ends the present process if the flag is disabled. In step S1713, the screen output processing unit304sets the notification destination of the operation information to the application management unit305, and then ends the present process. By executing the process of the present flowchart, a screen to be output can be switched between an application screen and a standard function screen depending on the situation.

<Sequence Associated with Ending of Application>

With reference toFIG. 18, a description is now given of a sequence of processes that are executed when an application is ended in the present embodiment. The following processes are realized, for example, by the CPU101reading out programs stored in the ROM103and the storage104into the RAM102and executing the programs.

When an application is ended, the application execution control unit306issues an output cancellation request to the screen output processing unit304in step S1801. The application execution control unit306also issues an operation information notification cancellation request to the UI control unit301in step S1804, and issues an end notification to the application management unit305in step S1805.

In step S1802, upon accepting the output cancellation request, the screen output processing unit304executes the screen output source switching process. As a result of this process, a screen output source is switched to the standard function screen buffer. Subsequently, in step S1803, the screen output processing unit304executes the screen output process and displays the previous screen.

Meanwhile, upon accepting the operation information notification cancellation request, the UI control unit301executes the notification destination switching process in step S1806. As a result of this process, the notification destination of operation information is switched to the standard function control unit302. Thereafter, in step S1807, the UI control unit301detects a screen operation performed by the user. Upon detecting the operation, the UI control unit301executes the operation information notification process in step S1808, and notifies the standard function control unit302of operation information in step S1809. By executing the foregoing sequence of processes, a displayed screen is switched to a standard function control screen and standard function control can receive operation information when an application is ended. That is to say, the user can perform operations without paying attention to switching between the native program and an extension application.

As described above, the present image forming apparatus includes the standard function screen buffer control unit303that renders an operation screen of a standard function, and the application screen buffer control unit307that renders an operation screen of an expanded function. Furthermore, the present image forming apparatus outputs an operation screen rendered by the standard function screen buffer control unit303or the application screen buffer control unit307. At this time, in outputting an operation screen rendered by the application screen buffer control unit307, that is to say, an operation screen of an expanded function, a certain part of an operation screen of a standard function (e.g., a footer area) is set in the output operation screen of the expanded function. The certain part of the operation screen of the standard function is, for example, a footer area that displays a state of the image forming apparatus. When an operation is performed on the certain part of the operation screen, operation information of the operation is notified to the standard function control unit302. On the other hand, when an operation is performed in an area of the operation screen other than the certain part, operation information of the operation is transmitted to the application management unit305. Accordingly, the present embodiment can reliably provide convenience to users by enabling favorable coexistence of a UI that operates standard functions and a UI that operates expanded functions while reducing consumption of limited resources of the image forming apparatus. Note that as the standard function control unit302performs a major part of the above-described control, extension applications can be designed and developed without taking complicated screen control into consideration.

One of the aspects of the embodiment enables realization of a mechanism that reliably provides convenience to users by enabling favorable coexistence of a UI that operates standard functions and a UI that operates expanded functions while reducing consumption of limited resources of the image forming apparatus.

Other Embodiments

This application claims the benefit of Japanese Patent Application No. 2016-156859 on Aug. 9, 2016, which is hereby incorporated by reference herein in its entirety.